diff --git a/app/Http/Controllers/ImageController.php b/app/Http/Controllers/ImageController.php index 3e82bb4c0..fd7901570 100644 --- a/app/Http/Controllers/ImageController.php +++ b/app/Http/Controllers/ImageController.php @@ -110,7 +110,11 @@ class ImageController extends Controller public function upload(Request $request) { $this->checkPermission('image-create'); + $this->validate($request, [ + 'file' => 'image|mimes:jpeg,gif,png' + ]); $imageUpload = $request->file('file'); + $name = str_replace(' ', '-', $imageUpload->getClientOriginalName()); $storageName = substr(sha1(time()), 0, 10) . '-' . $name; $imagePath = '/uploads/images/' . Date('Y-m-M') . '/'; diff --git a/app/Services/ViewService.php b/app/Services/ViewService.php index 55e32fe1c..475500927 100644 --- a/app/Services/ViewService.php +++ b/app/Services/ViewService.php @@ -27,6 +27,7 @@ class ViewService */ public function add(Entity $entity) { + if($this->user === null) return 0; $view = $entity->views()->where('user_id', '=', $this->user->id)->first(); // Add view if model exists if ($view) { @@ -52,6 +53,7 @@ class ViewService */ public function getUserRecentlyViewed($count = 10, $page = 0, $filterModel = false) { + if($this->user === null) return collect(); $skipCount = $count * $page; $query = $this->view->where('user_id', '=', auth()->user()->id); diff --git a/readme.md b/readme.md index d2791f6e4..7b4a20c6d 100644 --- a/readme.md +++ b/readme.md @@ -2,35 +2,40 @@ A platform to create documentation/wiki content. General information about BookStack can be found at https://www.bookstackapp.com/ -**BookStack is currently in rapid development so use now is heavily cautioned as future updates my break existing installations.** ## Requirements -BookStack has the similar requirements to Laravel. On top of those are some front-end build tools which the requirement of will be removed once out of beta release. +BookStack has the similar requirements to Laravel. On top of those are some front-end build tools which are only required when developing. * PHP >= 5.5.9 * OpenSSL PHP Extension * PDO PHP Extension -* Mbstring PHP Extension +* MBstring PHP Extension * Tokenizer PHP Extension * MySQL >= 5.6 +* Git (Not strictly required but helps manage updates) * [Composer](https://getcomposer.org/) -* [Node.js](https://nodejs.org/en/) **To be removed in future** -* [Bower](http://bower.io/) **To be removed in future** -* [Gulp](http://gulpjs.com/) **To be removed in future** +* [Node.js](https://nodejs.org/en/) **Development Only** +* [Gulp](http://gulpjs.com/) **Development Only** ## Installation Ensure the requirements are met before installing. -The installation is currently somewhat complicated. Some PHP/Laravel experience will benefit. This will be streamlined in the future. +This project currently uses the `release` branch of this repository as a stable channel for providing updates. -1. Clone the repository into a folder. -2. `cd` into folder and run `composer install` followed by `npm install` and `bower install`. -3. Run `gulp --production` to compile the JavaScript and css files. -4. Copy the `.env.example` file to `.env` and fill with your own database and mail details. -5. Ensure the `storage` & `bootstrap/cache` folders are writable by the web server. +The installation is currently somewhat complicated. Some PHP/Laravel experience will benefit. + +1. Clone the release branch of this repository into a folder. + +``` +git clone https://github.com/ssddanbrown/BookStack.git --branch release --single-branch +``` + +2. `cd` into the application folder and run `composer install`. +3. Copy the `.env.example` file to `.env` and fill with your own database and mail details. +4. Ensure the `storage` & `bootstrap/cache` folders are writable by the web server. 5. In the application root, Run `php artisan key:generate` to generate a unique application key. 6. If not using apache or `.htaccess` files are disable you will have to create some URL rewrite rules as shown below. 7. Run `php migrate` to update the database. diff --git a/resources/assets/js/components/image-manager.vue b/resources/assets/js/components/image-manager.vue index a77c4ac8e..b1c805f8f 100644 --- a/resources/assets/js/components/image-manager.vue +++ b/resources/assets/js/components/image-manager.vue @@ -110,6 +110,12 @@ dz.removeFile(file); }); }); + this.on('error', function(file, errorMessage, xhr) { + if(errorMessage.file) { + $(file.previewElement).find('[data-dz-errormessage]').text(errorMessage.file[0]); + } + console.log(errorMessage); + }); } }); }, diff --git a/resources/assets/sass/_pages.scss b/resources/assets/sass/_pages.scss index 68b7da2b9..9d3ab03c0 100644 --- a/resources/assets/sass/_pages.scss +++ b/resources/assets/sass/_pages.scss @@ -19,12 +19,16 @@ max-width: 840px; overflow-wrap: break-word; .align-left { - float: left !important; text-align: left; + } + img.align-left, table.align-left { + float: left !important; margin: $-xs $-s $-xs 0; } .align-right { float: right !important; + } + img.align-right, table.align-right { text-align: right; margin: $-xs 0 $-xs $-s; } diff --git a/resources/views/base.blade.php b/resources/views/base.blade.php index ca73551b2..be67109c5 100644 --- a/resources/views/base.blade.php +++ b/resources/views/base.blade.php @@ -3,7 +3,7 @@