Media Datenbank 1.0

This commit is contained in:
Kevin Adametz 2019-11-21 21:12:17 +01:00
parent c11fc557bf
commit c9f3d85d4e
50 changed files with 4774 additions and 172 deletions

108
.idea/workspace.xml generated
View file

@ -7,44 +7,46 @@
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/database/migrations/2019_08_05_171718_create_i_q_content_categories_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/database/migrations/2019_08_05_171719_create_i_q_content_tags_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/database/migrations/2019_08_05_171720_create_i_q_content_file_tags_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/js/jquery-cropper.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/js/jquery-cropper.min.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers/ColorController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers/FileController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentCategory.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentFile.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentFileTag.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentFolder.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentTag.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/_crop.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/colors.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/file.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/move-item.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/5095742f201612038.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/Datenblatt-BFX2019-01-15.xlsx" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/2.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/3.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/4.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/5.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/6.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/7.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/4.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/8.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/Baustein-Q-Board-Zeus.xls" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/VHJACKODURUmkehrdachbegruentDE.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/Wir-STERN-TOURS.youtube" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/4_cropped_1574181421.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/5_cropped_1574182410.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/8.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/2.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/4.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/5.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/6.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/7.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/4_cropped_1574181421.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/5_cropped_1574182410.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/8.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/chartsflot.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/formsextras.html" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/logo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/thumbs/logo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/youtube/Wir-STERN-TOURS.youtube" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/youtube/thumbs/Wir-STERN-TOURS.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/youtube/youtube-in/Wir-STERN-TOURS.youtube" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/youtube/youtube-in/thumbs/Wir-STERN-TOURS.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/4.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/8.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Wir-STERN-TOURS.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/vendor.zip" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.phpstorm.meta.php" beforeDir="false" afterPath="$PROJECT_DIR$/.phpstorm.meta.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/_ide_helper.php" beforeDir="false" afterPath="$PROJECT_DIR$/_ide_helper.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/_ide_helper_models.php" beforeDir="false" afterPath="$PROJECT_DIR$/_ide_helper_models.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Sym/CmsContent.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Sym/CmsContent.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Sym/TravelCountry.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Sym/TravelCountry.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/TravelCountry.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/TravelCountry.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/ide-helper.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/ide-helper.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/AdminUserController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/AdminUserController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/lfm.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/lfm.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/permissions.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/permissions.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/composer.json" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/composer.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/database/migrations/2019_08_05_171716_create_i_q_content_folders_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/database/migrations/2019_08_05_171716_create_i_q_content_folders_table.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/database/migrations/2019_08_05_171717_create_i_q_content_files_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/database/migrations/2019_08_05_171717_create_i_q_content_files_table.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/css/cropper.min.css" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/css/cropper.min.css" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/js/cropper.min.js" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/js/cropper.min.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers/ColorController.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers/ColorController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers/Controller.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers/Controller.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers/CropController.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers/CropController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers/DeleteController.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers/DeleteController.php" afterDir="false" />
@ -82,43 +84,23 @@
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/LfmStorageRepository.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/LfmStorageRepository.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Middlewares/CreateDefaultFolder.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Middlewares/CreateDefaultFolder.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Middlewares/MultiUser.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Middlewares/MultiUser.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentCategory.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentCategory.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentFile.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentFile.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentFileTag.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentFileTag.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentFolder.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentFolder.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentTag.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Models/IQContentTag.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/config/lfm.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/config/lfm.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/lang/de/lfm.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/lang/de/lfm.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/crop.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/crop.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/demo.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/demo.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/move.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/move.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/js/filemanager.js" beforeDir="false" afterPath="$PROJECT_DIR$/public/js/filemanager.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/iq/content/assets/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/iq/content/assets/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/layouts/includes/layout-sidenav.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/layouts/includes/layout-sidenav.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/routes/web.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/web.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/21.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/2110.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/381.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/3812-Konvertiert1.ai" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/Bilder/001/21.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/Bilder/6.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/Bildschirmfoto-2019-08-15-um-205143.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/PDFs/001/20.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/PDFs/001/21.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/PDFs/001/6.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/PDFs/001/Bildschirmfoto-2019-08-15-um-201357.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/PDFs/001/thumbs/20.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/PDFs/001/thumbs/6.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/PDFs/001/thumbs/Bildschirmfoto-2019-08-15-um-201357.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/PDFs/2556SR60.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/PDFs/381.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/PDFs/6.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/PDFs/thumbs/381.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/PDFs/thumbs/6.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/21.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/2110.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/381.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Bildschirmfoto-2019-08-15-um-205143.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/3.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/4.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/5.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Bilder-in/2.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Bilder-in/thumbs/2.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/4.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/5.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root2/8.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root2/thumbs/8.jpg" beforeDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
@ -170,7 +152,7 @@
</commandsHistory>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager" />
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="PhpWorkspaceProjectConfiguration" interpreter_name="MAMP PHP 7.1">
<include_path>
@ -309,14 +291,14 @@
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="database.console.LAST_STATE" value="false" />
<property name="js.buildTools.grunt.grunt-cli.package" value="" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views" />
<property name="nodejs_package_manager_path" value="npm" />
<property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers" />
<recent name="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views" />
<recent name="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers" />
<recent name="$PROJECT_DIR$/app/Models/Sym" />
<recent name="$PROJECT_DIR$/resources/views/drafts" />
<recent name="$PROJECT_DIR$/resources/views/cms/content/country" />
@ -564,6 +546,14 @@
<workItem from="1573569593295" duration="13441000" />
<workItem from="1573729220562" duration="5745000" />
<workItem from="1573756863803" duration="2170000" />
<workItem from="1573806273447" duration="561000" />
<workItem from="1574173803076" duration="8085000" />
<workItem from="1574187721681" duration="3019000" />
<workItem from="1574273552811" duration="5592000" />
<workItem from="1574322911704" duration="312000" />
<workItem from="1574351601027" duration="3380000" />
<workItem from="1574361652763" duration="13000" />
<workItem from="1574361673117" duration="4531000" />
</task>
<servers />
</component>

View file

@ -12,7 +12,6 @@ use App\User;
use Illuminate\Support\Facades\Mail;
use Input;
use Request;
use UniSharp\LaravelFilemanager\LaravelFilemanagerServiceProvider;
use Validator;
use DataTables;

View file

@ -185,7 +185,8 @@ return [
'mp3' => 'fa-file-audio',
'mp4' => 'fa-file-video',
'txt' => 'fa-file-alt',
'dwg' => 'fa fa-file-image',
'dwg' => 'fa-file-image',
'youtube' => 'fab fa-youtube-square',
],
/*

View file

@ -18,7 +18,7 @@ return [
'crm-cm-bf' => ['name' => 'ADMIN CRM > Kundenverwaltung > Buchungen (FeWo)' , 'color' => 'admin'],
'crm-old-cm' => ['name' => 'ADMIN CRM altes System > Kundenverwaltung' , 'color' => 'info'],
'cms' => ['name' => 'ADMIN CMS' , 'color' => 'secondary'],
'cms-iq-assets' => ['name' => 'ADMIN CMS > Medien' , 'color' => 'secondary'],
'cms-iq-assets' => ['name' => 'ADMIN CMS > Medien' , 'color' => 'secondary'],
'cms-tg' => ['name' => 'ADMIN CMS > Reiseführer' , 'color' => 'secondary'],
'cms-fb' => ['name' => 'ADMIN CMS > Feedback' , 'color' => 'secondary'],
'cms-sb' => ['name' => 'ADMIN CMS > Sidebar' , 'color' => 'secondary'],

View file

@ -0,0 +1,9 @@
/*!
* Cropper v0.9.1
* https://github.com/fengyuanchen/cropper
*
* Copyright (c) 2014-2015 Fengyuan Chen and contributors
* Released under the MIT license
*
* Date: 2015-03-21T04:58:27.265Z
*/.cropper-container{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.cropper-container img{display:block;width:100%;min-width:0!important;max-width:none!important;height:100%;min-height:0!important;max-height:none!important;image-orientation:0deg!important}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal{position:absolute;top:0;right:0;bottom:0;left:0}.cropper-drag-box{background-color:#fff;filter:alpha(opacity=0);opacity:0}.cropper-modal{background-color:#000;filter:alpha(opacity=50);opacity:.5}.cropper-view-box{display:block;width:100%;height:100%;overflow:hidden;outline:#69f solid 1px;outline-color:rgba(102,153,255,.75)}.cropper-dashed{position:absolute;display:block;filter:alpha(opacity=50);border:0 dashed #fff;opacity:.5}.cropper-dashed.dashed-h{top:33.33333333%;left:0;width:100%;height:33.33333333%;border-top-width:1px;border-bottom-width:1px}.cropper-dashed.dashed-v{top:0;left:33.33333333%;width:33.33333333%;height:100%;border-right-width:1px;border-left-width:1px}.cropper-face,.cropper-line,.cropper-point{position:absolute;display:block;width:100%;height:100%;filter:alpha(opacity=10);opacity:.1}.cropper-face{top:0;left:0;cursor:move;background-color:#fff}.cropper-line{background-color:#69f}.cropper-line.line-e{top:0;right:-3px;width:5px;cursor:e-resize}.cropper-line.line-n{top:-3px;left:0;height:5px;cursor:n-resize}.cropper-line.line-w{top:0;left:-3px;width:5px;cursor:w-resize}.cropper-line.line-s{bottom:-3px;left:0;height:5px;cursor:s-resize}.cropper-point{width:5px;height:5px;background-color:#69f;filter:alpha(opacity=75);opacity:.75}.cropper-point.point-e{top:50%;right:-3px;margin-top:-3px;cursor:e-resize}.cropper-point.point-n{top:-3px;left:50%;margin-left:-3px;cursor:n-resize}.cropper-point.point-w{top:50%;left:-3px;margin-top:-3px;cursor:w-resize}.cropper-point.point-s{bottom:-3px;left:50%;margin-left:-3px;cursor:s-resize}.cropper-point.point-ne{top:-3px;right:-3px;cursor:ne-resize}.cropper-point.point-nw{top:-3px;left:-3px;cursor:nw-resize}.cropper-point.point-sw{bottom:-3px;left:-3px;cursor:sw-resize}.cropper-point.point-se{right:-3px;bottom:-3px;width:20px;height:20px;cursor:se-resize;filter:alpha(opacity=100);opacity:1}.cropper-point.point-se:before{position:absolute;right:-50%;bottom:-50%;display:block;width:200%;height:200%;content:" ";background-color:#69f;filter:alpha(opacity=0);opacity:0}@media (min-width:768px){.cropper-point.point-se{width:15px;height:15px}}@media (min-width:992px){.cropper-point.point-se{width:10px;height:10px}}@media (min-width:1200px){.cropper-point.point-se{width:5px;height:5px;filter:alpha(opacity=75);opacity:.75}}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-invisible{filter:alpha(opacity=0);opacity:0}.cropper-hide{position:fixed;top:0;left:0;z-index:-1;width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;filter:alpha(opacity=0);opacity:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-canvas,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}

View file

@ -0,0 +1,304 @@
/*!
* Cropper.js v1.5.6
* https://fengyuanchen.github.io/cropperjs
*
* Copyright 2015-present Chen Fengyuan
* Released under the MIT license
*
* Date: 2019-10-04T04:33:44.164Z
*/
.cropper-container {
direction: ltr;
font-size: 0;
line-height: 0;
position: relative;
-ms-touch-action: none;
touch-action: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.cropper-container img {
display: block;
height: 100%;
image-orientation: 0deg;
max-height: none !important;
max-width: none !important;
min-height: 0 !important;
min-width: 0 !important;
width: 100%;
}
.cropper-wrap-box,
.cropper-canvas,
.cropper-drag-box,
.cropper-crop-box,
.cropper-modal {
bottom: 0;
left: 0;
position: absolute;
right: 0;
top: 0;
}
.cropper-wrap-box,
.cropper-canvas {
overflow: hidden;
}
.cropper-drag-box {
background-color: #fff;
opacity: 0;
}
.cropper-modal {
background-color: #000;
opacity: 0.5;
}
.cropper-view-box {
display: block;
height: 100%;
outline: 1px solid #39f;
outline-color: rgba(51, 153, 255, 0.75);
overflow: hidden;
width: 100%;
}
.cropper-dashed {
border: 0 dashed #eee;
display: block;
opacity: 0.5;
position: absolute;
}
.cropper-dashed.dashed-h {
border-bottom-width: 1px;
border-top-width: 1px;
height: calc(100% / 3);
left: 0;
top: calc(100% / 3);
width: 100%;
}
.cropper-dashed.dashed-v {
border-left-width: 1px;
border-right-width: 1px;
height: 100%;
left: calc(100% / 3);
top: 0;
width: calc(100% / 3);
}
.cropper-center {
display: block;
height: 0;
left: 50%;
opacity: 0.75;
position: absolute;
top: 50%;
width: 0;
}
.cropper-center::before,
.cropper-center::after {
background-color: #eee;
content: ' ';
display: block;
position: absolute;
}
.cropper-center::before {
height: 1px;
left: -3px;
top: 0;
width: 7px;
}
.cropper-center::after {
height: 7px;
left: 0;
top: -3px;
width: 1px;
}
.cropper-face,
.cropper-line,
.cropper-point {
display: block;
height: 100%;
opacity: 0.1;
position: absolute;
width: 100%;
}
.cropper-face {
background-color: #fff;
left: 0;
top: 0;
}
.cropper-line {
background-color: #39f;
}
.cropper-line.line-e {
cursor: ew-resize;
right: -3px;
top: 0;
width: 5px;
}
.cropper-line.line-n {
cursor: ns-resize;
height: 5px;
left: 0;
top: -3px;
}
.cropper-line.line-w {
cursor: ew-resize;
left: -3px;
top: 0;
width: 5px;
}
.cropper-line.line-s {
bottom: -3px;
cursor: ns-resize;
height: 5px;
left: 0;
}
.cropper-point {
background-color: #39f;
height: 5px;
opacity: 0.75;
width: 5px;
}
.cropper-point.point-e {
cursor: ew-resize;
margin-top: -3px;
right: -3px;
top: 50%;
}
.cropper-point.point-n {
cursor: ns-resize;
left: 50%;
margin-left: -3px;
top: -3px;
}
.cropper-point.point-w {
cursor: ew-resize;
left: -3px;
margin-top: -3px;
top: 50%;
}
.cropper-point.point-s {
bottom: -3px;
cursor: s-resize;
left: 50%;
margin-left: -3px;
}
.cropper-point.point-ne {
cursor: nesw-resize;
right: -3px;
top: -3px;
}
.cropper-point.point-nw {
cursor: nwse-resize;
left: -3px;
top: -3px;
}
.cropper-point.point-sw {
bottom: -3px;
cursor: nesw-resize;
left: -3px;
}
.cropper-point.point-se {
bottom: -3px;
cursor: nwse-resize;
height: 20px;
opacity: 1;
right: -3px;
width: 20px;
}
@media (min-width: 768px) {
.cropper-point.point-se {
height: 15px;
width: 15px;
}
}
@media (min-width: 992px) {
.cropper-point.point-se {
height: 10px;
width: 10px;
}
}
@media (min-width: 1200px) {
.cropper-point.point-se {
height: 5px;
opacity: 0.75;
width: 5px;
}
}
.cropper-point.point-se::before {
background-color: #39f;
bottom: -50%;
content: ' ';
display: block;
height: 200%;
opacity: 0;
position: absolute;
right: -50%;
width: 200%;
}
.cropper-invisible {
opacity: 0;
}
.cropper-bg {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC');
}
.cropper-hide {
display: block;
height: 0;
position: absolute;
width: 0;
}
.cropper-hidden {
display: none !important;
}
.cropper-move {
cursor: move;
}
.cropper-crop {
cursor: crosshair;
}
.cropper-disabled .cropper-drag-box,
.cropper-disabled .cropper-face,
.cropper-disabled .cropper-line,
.cropper-disabled .cropper-point {
cursor: not-allowed;
}

10
packages/iqcontent/laravel-filemanager/public/css/cropper.min.css vendored Executable file → Normal file
View file

@ -1,9 +1,9 @@
/*!
* Cropper v0.9.1
* https://github.com/fengyuanchen/cropper
* Cropper.js v1.5.6
* https://fengyuanchen.github.io/cropperjs
*
* Copyright (c) 2014-2015 Fengyuan Chen and contributors
* Copyright 2015-present Chen Fengyuan
* Released under the MIT license
*
* Date: 2015-03-21T04:58:27.265Z
*/.cropper-container{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.cropper-container img{display:block;width:100%;min-width:0!important;max-width:none!important;height:100%;min-height:0!important;max-height:none!important;image-orientation:0deg!important}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal{position:absolute;top:0;right:0;bottom:0;left:0}.cropper-drag-box{background-color:#fff;filter:alpha(opacity=0);opacity:0}.cropper-modal{background-color:#000;filter:alpha(opacity=50);opacity:.5}.cropper-view-box{display:block;width:100%;height:100%;overflow:hidden;outline:#69f solid 1px;outline-color:rgba(102,153,255,.75)}.cropper-dashed{position:absolute;display:block;filter:alpha(opacity=50);border:0 dashed #fff;opacity:.5}.cropper-dashed.dashed-h{top:33.33333333%;left:0;width:100%;height:33.33333333%;border-top-width:1px;border-bottom-width:1px}.cropper-dashed.dashed-v{top:0;left:33.33333333%;width:33.33333333%;height:100%;border-right-width:1px;border-left-width:1px}.cropper-face,.cropper-line,.cropper-point{position:absolute;display:block;width:100%;height:100%;filter:alpha(opacity=10);opacity:.1}.cropper-face{top:0;left:0;cursor:move;background-color:#fff}.cropper-line{background-color:#69f}.cropper-line.line-e{top:0;right:-3px;width:5px;cursor:e-resize}.cropper-line.line-n{top:-3px;left:0;height:5px;cursor:n-resize}.cropper-line.line-w{top:0;left:-3px;width:5px;cursor:w-resize}.cropper-line.line-s{bottom:-3px;left:0;height:5px;cursor:s-resize}.cropper-point{width:5px;height:5px;background-color:#69f;filter:alpha(opacity=75);opacity:.75}.cropper-point.point-e{top:50%;right:-3px;margin-top:-3px;cursor:e-resize}.cropper-point.point-n{top:-3px;left:50%;margin-left:-3px;cursor:n-resize}.cropper-point.point-w{top:50%;left:-3px;margin-top:-3px;cursor:w-resize}.cropper-point.point-s{bottom:-3px;left:50%;margin-left:-3px;cursor:s-resize}.cropper-point.point-ne{top:-3px;right:-3px;cursor:ne-resize}.cropper-point.point-nw{top:-3px;left:-3px;cursor:nw-resize}.cropper-point.point-sw{bottom:-3px;left:-3px;cursor:sw-resize}.cropper-point.point-se{right:-3px;bottom:-3px;width:20px;height:20px;cursor:se-resize;filter:alpha(opacity=100);opacity:1}.cropper-point.point-se:before{position:absolute;right:-50%;bottom:-50%;display:block;width:200%;height:200%;content:" ";background-color:#69f;filter:alpha(opacity=0);opacity:0}@media (min-width:768px){.cropper-point.point-se{width:15px;height:15px}}@media (min-width:992px){.cropper-point.point-se{width:10px;height:10px}}@media (min-width:1200px){.cropper-point.point-se{width:5px;height:5px;filter:alpha(opacity=75);opacity:.75}}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-invisible{filter:alpha(opacity=0);opacity:0}.cropper-hide{position:fixed;top:0;left:0;z-index:-1;width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;filter:alpha(opacity=0);opacity:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-canvas,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}
* Date: 2019-10-04T04:33:44.164Z
*/.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:rgba(51,153,255,.75);overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC")}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

10
packages/iqcontent/laravel-filemanager/public/js/cropper.min.js vendored Executable file → Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,73 @@
/*!
* jQuery Cropper v1.0.1
* https://fengyuanchen.github.io/jquery-cropper
*
* Copyright 2018-present Chen Fengyuan
* Released under the MIT license
*
* Date: 2019-10-19T08:48:33.062Z
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery'), require('cropperjs')) :
typeof define === 'function' && define.amd ? define(['jquery', 'cropperjs'], factory) :
(global = global || self, factory(global.jQuery, global.Cropper));
}(this, function ($, Cropper) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
Cropper = Cropper && Cropper.hasOwnProperty('default') ? Cropper['default'] : Cropper;
if ($ && $.fn && Cropper) {
var AnotherCropper = $.fn.cropper;
var NAMESPACE = 'cropper';
$.fn.cropper = function jQueryCropper(option) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
var result;
this.each(function (i, element) {
var $element = $(element);
var isDestroy = option === 'destroy';
var cropper = $element.data(NAMESPACE);
if (!cropper) {
if (isDestroy) {
return;
}
var options = $.extend({}, $element.data(), $.isPlainObject(option) && option);
cropper = new Cropper(element, options);
$element.data(NAMESPACE, cropper);
}
if (typeof option === 'string') {
var fn = cropper[option];
if ($.isFunction(fn)) {
result = fn.apply(cropper, args);
if (result === cropper) {
result = undefined;
}
if (isDestroy) {
$element.removeData(NAMESPACE);
}
}
}
});
return result !== undefined ? result : this;
};
$.fn.cropper.Constructor = Cropper;
$.fn.cropper.setDefaults = Cropper.setDefaults;
$.fn.cropper.noConflict = function noConflict() {
$.fn.cropper = AnotherCropper;
return this;
};
}
}));

View file

@ -0,0 +1,10 @@
/*!
* jQuery Cropper v1.0.1
* https://fengyuanchen.github.io/jquery-cropper
*
* Copyright 2018-present Chen Fengyuan
* Released under the MIT license
*
* Date: 2019-10-19T08:48:33.062Z
*/
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(require("jquery"),require("cropperjs")):"function"==typeof define&&define.amd?define(["jquery","cropperjs"],r):r((e=e||self).jQuery,e.Cropper)}(this,function(c,s){"use strict";if(c=c&&c.hasOwnProperty("default")?c.default:c,s=s&&s.hasOwnProperty("default")?s.default:s,c&&c.fn&&s){var e=c.fn.cropper,d="cropper";c.fn.cropper=function(p){for(var e=arguments.length,a=new Array(1<e?e-1:0),r=1;r<e;r++)a[r-1]=arguments[r];var u;return this.each(function(e,r){var t=c(r),n="destroy"===p,o=t.data(d);if(!o){if(n)return;var f=c.extend({},t.data(),c.isPlainObject(p)&&p);o=new s(r,f),t.data(d,o)}if("string"==typeof p){var i=o[p];c.isFunction(i)&&((u=i.apply(o,a))===o&&(u=void 0),n&&t.removeData(d))}}),void 0!==u?u:this},c.fn.cropper.Constructor=s,c.fn.cropper.setDefaults=s.setDefaults,c.fn.cropper.noConflict=function(){return c.fn.cropper=e,this}}});

View file

@ -10,6 +10,15 @@ use IqContent\LaravelFilemanager\Events\FolderWasRenamed;
class ColorController extends LfmController
{
public function getColor()
{
return view('laravel-filemanager::colors')
->with([
'working_dir' => request('working_dir'),
'color' => request('color')
]);
}
public function performColor()
{
$file_name = $this->helper->input('file');
$new_color = $this->helper->input('new_color');

View file

@ -5,6 +5,7 @@ namespace IqContent\LaravelFilemanager\Controllers;
use Intervention\Image\Facades\Image;
use IqContent\LaravelFilemanager\Events\ImageIsCropping;
use IqContent\LaravelFilemanager\Events\ImageWasCropped;
use IqContent\LaravelFilemanager\Models\IQContentFile;
class CropController extends LfmController
{
@ -34,21 +35,42 @@ class CropController extends LfmController
if (! $overWrite) {
$fileParts = explode('.', $image_name);
$fileParts[count($fileParts) - 2] = $fileParts[count($fileParts) - 2] . '_cropped_' . time();
$crop_path = $this->lfm->setName(implode('.', $fileParts))->path('absolute');
$image_name = implode('.', $fileParts);
$crop_path = $this->lfm->setName($image_name)->path('absolute');
}
event(new ImageIsCropping($image_path));
$crop_info = request()->only('dataWidth', 'dataHeight', 'dataX', 'dataY');
// crop image
Image::make($image_path)
$image = Image::make($image_path)
->crop(...array_values($crop_info))
->save($crop_path);
// make new thumbnail
$this->lfm->makeThumbnail($image_name);
$new_file = $this->lfm->pretty($image_name);
$working_folder_id = $new_file->getModelParentFolderId();
$mimeType = $new_file->mimeType();
$extension = $new_file->extension();
$size = \File::size($crop_path);
IQContentFile::create([
'folder_id' => $working_folder_id,
'name' => $image_name,
'identifier' => $image_name,
'ext' => $extension,
'mine' => $mimeType,
'size' => $size / 1000,
'dimensions' => $image->width()."x".$image->height(),
'content' => '',
]);
event(new ImageWasCropped($image_path));
}

View file

@ -0,0 +1,253 @@
<?php
namespace IqContent\LaravelFilemanager\Controllers;
use Intervention\Image\Facades\Image;
use IqContent\LaravelFilemanager\Events\ImageIsCropping;
use IqContent\LaravelFilemanager\Events\ImageWasCropped;
use IqContent\LaravelFilemanager\Models\IQContentFile;
class FileController extends LfmController
{
private $apikey = 'AIzaSyC31Tf0rZVYqRRcUNk4XXPtV5yzKDzkb1E';
/**
* Show crop page.
*
* @return mixed
*/
public function getFile()
{
return view('laravel-filemanager::file')
->with([
'working_dir' => request('working_dir'),
]);
}
/**
* Crop the image (called via ajax).
*/
public function performFile($overWrite = true)
{
//$working_dir = request('working_dir');
$file_type = request('file_type');
if($file_type === 'youtube'){
return $this->createYoutubeFile($file_type);
}
/* if(!$file_name || $file_name == ""){
$file_name = "newEmptyFile.".$file_type;
}else{
$file_name = $file_name.".".$file_type;
}
$file_name = request('file_name');
$file_content = request('file_content');*/
return $this->response('error', "unbekannter File Typ");
}
private function createYoutubeFile($file_type){
$youtube_video_id = request('file_content');
$value = $this->readGoogleApi($youtube_video_id);
if(!$value || !isset($value['items'][0]['snippet']['title'])){
return $this->response('error', "youtube ID nicht gefunden: ".$youtube_video_id);
}
$file_title = $value['items'][0]['snippet']['title'];
if (config('lfm.alphanumeric_filename')) {
$file_title = $this->helper->sanitize($file_title);
}
$file_name = $file_title.".".$file_type;
if ($this->lfm->setName($file_name)->exists()) {
return $this->response('error', parent::getError('move-exist'));
}
$new_file = $this->lfm->pretty($file_name);
$working_folder_id = $new_file->getModelParentFolderId();
$file_path = $new_file->path();
//Storage::disk('local')->put('file.txt', 'Contents');
$new_file->put($youtube_video_id);
$mimeType = $file_type;
$extension = $file_type;
$size = \File::size($file_path);
//thumbnails
if(isset($value['items'][0]['snippet']['thumbnails']['standard']['url'])) {
// create folder for thumbnails
$this->lfm->makeThumbnailURL($file_title.".jpg", $value['items'][0]['snippet']['thumbnails']['standard']['url']);
//image from url
// $image = Image::make($value['items'][0]['snippet']['thumbnails']['standard']['url']);
// $image->fit(config('lfm.thumb_img_width', 200), config('lfm.thumb_img_height', 200));
// $this->lfm->storage->put($image->stream()->detach());
}
IQContentFile::create([
'folder_id' => $working_folder_id,
'name' => $new_file->name(),
'identifier' => $new_file->name(),
'ext' => $extension,
'mine' => $mimeType,
'size' => $size / 1000,
'dimensions' => '',
'content' => $youtube_video_id,
]);
return parent::$success_response;
}
private function readGoogleApi($videoId){
$googleApiUrl = 'https://www.googleapis.com/youtube/v3/videos?id=' . $videoId . '&key=' . $this->apikey . '&part=snippet';
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $googleApiUrl);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response);
$value = json_decode(json_encode($data), true);
return $value;
}
}
// $title = $value['items'][0]['snippet']['title'];
// $description = $value['items'][0]['snippet']['description'];
/*
*
*
array(4) {
["kind"]=>
string(25) "youtube#videoListResponse"
["etag"]=>
string(57) ""j6xRRd8dTPVVptg711_CSPADRfg/TOFYJKnMf1x6cO7CgAzk3K2BaRw""
["pageInfo"]=>
array(2) {
["totalResults"]=>
int(1)
["resultsPerPage"]=>
int(1)
}
["items"]=>
array(1) {
[0]=>
array(4) {
["kind"]=>
string(13) "youtube#video"
["etag"]=>
string(57) ""j6xRRd8dTPVVptg711_CSPADRfg/pVQe28OgNai40jPirl_G00FJDw8""
["id"]=>
string(11) "Rpo5py2fjrg"
["snippet"]=>
array(10) {
["publishedAt"]=>
string(24) "2018-12-23T22:42:41.000Z"
["channelId"]=>
string(24) "UCZZ5ZL0Wiv90RF2KDuR_mFA"
["title"]=>
string(16) "Wir: STERN TOURS"
["description"]=>
string(55) "Reiseveranstalter und Kulturreise-Spezialist aus Berlin"
["thumbnails"]=>
array(5) {
["default"]=>
array(3) {
["url"]=>
string(46) "https://i.ytimg.com/vi/Rpo5py2fjrg/default.jpg"
["width"]=>
int(120)
["height"]=>
int(90)
}
["medium"]=>
array(3) {
["url"]=>
string(48) "https://i.ytimg.com/vi/Rpo5py2fjrg/mqdefault.jpg"
["width"]=>
int(320)
["height"]=>
int(180)
}
["high"]=>
array(3) {
["url"]=>
string(48) "https://i.ytimg.com/vi/Rpo5py2fjrg/hqdefault.jpg"
["width"]=>
int(480)
["height"]=>
int(360)
}
["standard"]=>
array(3) {
["url"]=>
string(48) "https://i.ytimg.com/vi/Rpo5py2fjrg/sddefault.jpg"
["width"]=>
int(640)
["height"]=>
int(480)
}
["maxres"]=>
array(3) {
["url"]=>
string(52) "https://i.ytimg.com/vi/Rpo5py2fjrg/maxresdefault.jpg"
["width"]=>
int(1280)
["height"]=>
int(720)
}
}
["channelTitle"]=>
string(10) "SternTours"
["tags"]=>
array(1) {
[0]=>
string(11) "STERN TOURS"
}
["categoryId"]=>
string(2) "19"
["liveBroadcastContent"]=>
string(4) "none"
["localized"]=>
array(2) {
["title"]=>
string(16) "Wir: STERN TOURS"
["description"]=>
string(55) "Reiseveranstalter und Kulturreise-Spezialist aus Berlin"
}
}
}
}
}
*/
//Preview image
//https://img.youtube.com/vi/Rpo5py2fjrg/hqdefault.jpg
//https://www.googleapis.com/youtube/v3/videos
//https://www.googleapis.com/youtube/v3/videos?part=snippet&id={YOUTUBE_VIDEO_ID}&fields=items(id%2Csnippet)&key={YOUR_API_KEY}
//http://gdata.youtube.com/feeds/api/videos/Rpo5py2fjrg

View file

@ -69,7 +69,11 @@ class ItemsController extends LfmController
foreach ($lfm->folders() as $folder){
if($folder->name() == $old_file->name()){
return $this->response('error', parent::getError('move-exist'));
}
}
foreach ($lfm->files() as $files){
if($files->name() == $old_file->name()){
return $this->response('error', parent::getError('move-exist'));
}
}

View file

@ -346,18 +346,36 @@ class Lfm
'as' => 'getCropimage',
]);
// add-file
Route::get('/add-file', [
'uses' => 'FileController@getFile',
'as' => 'getFile',
]);
// add-file
Route::get('/add-dofile', [
'uses' => 'FileController@performFile',
'as' => 'performFile',
]);
// rename
Route::get('/rename', [
'uses' => 'RenameController@getRename',
'as' => 'getRename',
'as' => 'getFile',
]);
// colorshue
Route::get('/colorshue', [
Route::get('/colorhue', [
'uses' => 'ColorController@getColor',
'as' => 'getColor',
]);
// colorshue
Route::get('/docolorhue', [
'uses' => 'ColorController@performColor',
'as' => 'performColor',
]);
// scale/resize
Route::get('/resize', [
'uses' => 'ResizeController@getResize',

View file

@ -9,7 +9,7 @@ class LfmItem
private $lfm;
private $helper;
private $columns = ['name', 'url', 'time', 'icon', 'color', 'is_file', 'is_image', 'thumb_url'];
private $columns = ['name', 'url', 'time', 'icon', 'color', 'is_file', 'is_image', 'thumb_url', 'size', 'dimension', 'content'];
public $attributes = [];
public function __construct(LfmPath $lfm, Lfm $helper)
@ -70,7 +70,7 @@ class LfmItem
*/
public function isImage()
{
return starts_with($this->mimeType(), 'image');
return (strpos($this->mimeType(), 'image') !== false);
}
/**
@ -94,6 +94,11 @@ class LfmItem
return $this->lfm->extension();
}
public function put($content)
{
return $this->lfm->put($content);
}
public function url()
{
if ($this->isDirectory()) {
@ -105,7 +110,23 @@ class LfmItem
public function size()
{
return $this->isFile() ? $this->humanFilesize($this->lfm->size()) : '';
if($this->model()){
return $this->isFile() ? $this->humanFilesize($this->model()->size) : '';
}
}
public function content()
{
if($this->model()){
return $this->model()->content;
}
}
public function sizeRow()
{
return $this->isFile() ? $this->lfm->size() : '';
}
public function time()
@ -113,6 +134,17 @@ class LfmItem
return $this->lfm->lastModified();
}
public function dimension()
{
if ($this->isImage()) {
if($this->model()) {
return $this->model()->dimensions;
}
}
return "";
}
public function dimensions()
{
@ -123,15 +155,26 @@ class LfmItem
return null;
}
public function getModelParentFolderId(){
return $this->lfm->getModelParentFolderId();
}
public function thumbUrl()
{
//edit
if ($this->isDirectory()) {
return null;
}
if ($this->isImage()) {
return $this->lfm->thumb($this->hasThumb())->url(true);
return $this->lfm->thumb($this->hasThumb())->url();
}
if ($this->extension() === "youtube") {
$name = str_replace(".youtube", ".jpg", $this->name());
return $this->lfm->setName($name)->thumb(true)->url();
}
return null;
@ -223,9 +266,12 @@ class LfmItem
* @param int $decimals Decimals.
* @return string
*/
public function humanFilesize($bytes, $decimals = 2)
public function humanFilesize($bytes = 0, $decimals = 2)
{
$size = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
if($bytes == 0){
return "";
}
$size = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
$factor = floor((strlen($bytes) - 1) / 3);
return sprintf("%.{$decimals}f %s", $bytes / pow(1024, $factor), @$size[$factor]);

View file

@ -229,11 +229,14 @@ class LfmPath
$parent_folder_id = $this->getModelParentFolderId();
$this->storage->makeDirectory(0777, true, true);
IQContentFolder::create([
'folder_id' => $parent_folder_id,
'name' => $this->item_name,
'identifier' => $this->item_name,
]);
if(!$this->is_thumb){
IQContentFolder::create([
'folder_id' => $parent_folder_id,
'name' => $this->item_name,
'identifier' => $this->item_name,
]);
}
}
public function isDirectory()
@ -425,4 +428,16 @@ class LfmPath
$this->storage->put($image->stream()->detach());
}
public function makeThumbnailURL($file_name, $url)
{
// create folder for thumbnails
$this->setName(null)->thumb(true)->createFolder();
// generate cropped image content
$this->setName($file_name)->thumb(true);
$image = Image::make($url);
// $this->image_dimensions = $image->width()."x".$image->height();
$image->fit(config('lfm.thumb_img_width', 200), config('lfm.thumb_img_height', 200));
$this->storage->put($image->stream()->detach());
}
}

View file

@ -43,6 +43,8 @@ return [
'message-extension_not_found' => 'Installieren Sie gd oder imagick Erweiterung um Bilder zuzuschneiden, Größe ändern und Thumbnails zu erstellen.',
'message-drop' => 'Or drop files here to upload',
'file-name' => 'Neue Datei:',
'error-rename' => 'Dateiname wird bereits verwendet!',
'error-file-name' => 'File name cannot be empty!',
'error-file-empty' => 'Sie müssen eine Datei auswählen!',
@ -74,9 +76,9 @@ return [
'btn-uploading' => 'Hochladen...',
'btn-close' => 'Schließen',
'btn-crop' => 'Zuschneiden',
'btn-cancel' => 'Stornieren',
'btn-cancel' => 'schließen',
'btn-resize' => 'Größe ändern',
'btn-copy-crop' => 'Copy & Crop',
'btn-copy-crop' => 'kopieren & zuschneiden',
'btn-crop-free' => 'Free',
'btn-confirm' => 'Okay',
'btn-open' => 'Ordner öffnen Folder',

View file

@ -0,0 +1,104 @@
<div class="row no-gutters">
<div class="col-xl-8">
<div class="crop-container">
<img src="{{ $img->url . '?timestamp=' . $img->time }}" class="img img-responsive">
</div>
</div>
<div class="col-xl-4">
<div class="text-center">
<div class="img-preview center-block"></div>
<br>
<div class="btn-group clearfix">
<label class="btn btn-info btn-aspectRatio active" onclick="changeAspectRatio(this, 16 / 9)">
16:9
</label>
<label class="btn btn-info btn-aspectRatio" onclick="changeAspectRatio(this, 4 / 3)">
4:3
</label>
<label class="btn btn-info btn-aspectRatio" onclick="changeAspectRatio(this, 1)">
1:1
</label>
<label class="btn btn-info btn-aspectRatio" onclick="changeAspectRatio(this, 2 / 3)">
2:3
</label>
<label class="btn btn-info btn-aspectRatio" onclick="changeAspectRatio(this, null)">
{{ trans('laravel-filemanager::lfm.btn-crop-free') }}
</label>
</div>
<br>
<br>
<div class="btn-group clearfix">
<button class="btn btn-secondary" onclick="loadItems()">{{ trans('laravel-filemanager::lfm.btn-cancel') }}</button>
<button class="btn btn-warning" onclick="performCropNew()">{{ trans('laravel-filemanager::lfm.btn-copy-crop') }}</button>
<button class="btn btn-primary" onclick="performCrop()">{{ trans('laravel-filemanager::lfm.btn-crop') }}</button>
</div>
<form id='cropForm'>
<input type="hidden" id="img" name="img" value="{{ $img->name }}">
<input type="hidden" id="working_dir" name="working_dir" value="{{ $working_dir }}">
<input type="hidden" id="dataX" name="dataX">
<input type="hidden" id="dataY" name="dataY">
<input type="hidden" id="dataWidth" name="dataWidth">
<input type="hidden" id="dataHeight" name="dataHeight">
<input type='hidden' name='_token' value='{{csrf_token()}}'>
</form>
</div>
</div>
</div>
<script>
var $image = null,
options = {};
$(document).ready(function () {
var $dataX = $('#dataX'),
$dataY = $('#dataY'),
$dataHeight = $('#dataHeight'),
$dataWidth = $('#dataWidth');
$image = $('.crop-container > img');
options = {
aspectRatio: 16 / 9,
preview: ".img-preview",
strict: false,
crop: function (data) {
// Output the result data for cropping image.
$dataX.val(Math.round(data.x));
$dataY.val(Math.round(data.y));
$dataHeight.val(Math.round(data.height));
$dataWidth.val(Math.round(data.width));
}
};
$image.cropper(options);
});
function changeAspectRatio(_this, aspectRatio) {
options.aspectRatio = aspectRatio;
$('.btn-aspectRatio.active').removeClass('active');
$(_this).addClass('active');
$('.img-preview').removeAttr('style');
$image.cropper('destroy').cropper(options);
return false;
}
function performCrop() {
performLfmRequest('cropimage', {
img: $("#img").val(),
working_dir: $("#working_dir").val(),
dataX: $("#dataX").val(),
dataY: $("#dataY").val(),
dataHeight: $("#dataHeight").val(),
dataWidth: $("#dataWidth").val(),
type: $('#type').val()
}).done(loadItems);
}
function performCropNew() {
performLfmRequest('cropnewimage', {
img: $("#img").val(),
working_dir: $("#working_dir").val(),
dataX: $("#dataX").val(),
dataY: $("#dataY").val(),
dataHeight: $("#dataHeight").val(),
dataWidth: $("#dataWidth").val(),
type: $('#type').val()
}).done(loadItems);
}
</script>

View file

@ -0,0 +1,34 @@
<input type="text" name="color" id="minicolors-hue" class="form-control" value="{{$color}}">
<script>
$(document).ready(function () {
$("#notify").on("shown.bs.modal", function() {
});
});
function colorshue(title, color, callback) {
$('#notify').find('input').unbind('keypress.key13').bind('keypress.key13', function (e) {
if (e.which === 13) {
$('#notify').find('.btn-primary').click();
}
});
// $('#colorhue').modal('show').find('.modal-title').text(title);
}
$('#minicolors-hue').minicolors({
control: 'hue',
position: 'bottom ' + 'left',
});
</script>

View file

@ -1,10 +1,15 @@
<style>
img {
max-width: 100%;
}
</style>
<div class="row no-gutters">
<div class="col-xl-8">
<div class="col-12">
<div class="crop-container">
<img src="{{ $img->url . '?timestamp=' . $img->time }}" class="img img-responsive">
</div>
</div>
<div class="col-xl-4">
<div class="col-12">
<div class="text-center">
<div class="img-preview center-block"></div>
<br>
@ -28,9 +33,8 @@
<br>
<br>
<div class="btn-group clearfix">
<button class="btn btn-secondary" onclick="loadItems()">{{ trans('laravel-filemanager::lfm.btn-cancel') }}</button>
<button class="btn btn-warning" onclick="performCropNew()">{{ trans('laravel-filemanager::lfm.btn-copy-crop') }}</button>
<button class="btn btn-primary" onclick="performCrop()">{{ trans('laravel-filemanager::lfm.btn-crop') }}</button>
<button class="btn btn-primary" onclick="performCropNew()">{{ trans('laravel-filemanager::lfm.btn-copy-crop') }}</button>
<!-- <button class="btn btn-primary" onclick="performCrop()">{{ trans('laravel-filemanager::lfm.btn-crop') }}</button> -->
</div>
<form id='cropForm'>
<input type="hidden" id="img" name="img" value="{{ $img->name }}">
@ -50,26 +54,39 @@
options = {};
$(document).ready(function () {
$("#notify").on("shown.bs.modal", function() {
var $dataX = $('#dataX'),
$dataY = $('#dataY'),
$dataHeight = $('#dataHeight'),
$dataWidth = $('#dataWidth');
$dataY = $('#dataY'),
$dataHeight = $('#dataHeight'),
$dataWidth = $('#dataWidth');
$image = $('.crop-container > img');
options = {
aspectRatio: 16 / 9,
preview: ".img-preview",
strict: false,
crop: function (data) {
// Output the result data for cropping image.
$dataX.val(Math.round(data.x));
$dataY.val(Math.round(data.y));
$dataHeight.val(Math.round(data.height));
$dataWidth.val(Math.round(data.width));
}
aspectRatio: 16 / 9,
preview: ".img-preview",
strict: false,
crop: function (data) {
console.log(data);
// Output the result data for cropping image.
$dataX.val(Math.round(data.x));
$dataY.val(Math.round(data.y));
$dataHeight.val(Math.round(data.height));
$dataWidth.val(Math.round(data.width));
}
};
$image.cropper(options);
});
});
function closeAndLoadItems() {
$image = $('.crop-container > img');
$image.cropper('destroy');
$('#notify').modal('hide').find('.modal-body').html("");
loadItems();
}
function changeAspectRatio(_this, aspectRatio) {
options.aspectRatio = aspectRatio;
$('.btn-aspectRatio.active').removeClass('active');
@ -87,7 +104,7 @@
dataHeight: $("#dataHeight").val(),
dataWidth: $("#dataWidth").val(),
type: $('#type').val()
}).done(loadItems);
}).done(closeAndLoadItems);
}
function performCropNew() {
@ -99,6 +116,6 @@
dataHeight: $("#dataHeight").val(),
dataWidth: $("#dataWidth").val(),
type: $('#type').val()
}).done(loadItems);
}).done(closeAndLoadItems);
}
</script>

View file

@ -0,0 +1,25 @@
<form id='fileForm'>
<div class="form-group">
<label class="form-label" for="file_type">Typ*</label>
<select class="custom-select" data-style="btn-default" name="from_file_type" id="from_file_type">
<option value="youtube">Youtube</option>
<!--<option value="txt">Text</option> -->
</select>
</div>
<div class="form-group">
<label class="form-label" for="file_type">Youtube Video ID*</label>
<input type="text" class="form-control" name="form_file_content" id="form_file_content" placeholder="Nur die ID des Video angeben" required>
</div>
<input type="hidden" id="working_dir" name="working_dir" value="{{ $working_dir }}">
<input type='hidden' name='_token' value='{{csrf_token()}}'>
</form>
<script>
</script>

View file

@ -77,12 +77,26 @@ $('#multi_selection_toggle').click(function () {
});
*/
$(document).on('click', '#lfm_add-file', function () {
performLfmRequest('add-file', {})
.done(function (data) {
hideNavAndShowEditor(data, function () {
performLfmRequest('add-dofile', {
working_dir: $("#working_dir").val(),
file_type: $("#from_file_type").val(),
// file_name: $("#form_file_name").val(),
file_content: $("#form_file_content").val(),
}).done(refreshFoldersAndItems);
});
});
});
$(document).on('click', '#lfm_add-folder', function () {
dialog(lang['message-name'], '', createFolder);
});
$(document).on('click', '#lfm_upload', function () {
$('#uploadModal').modal('show');
});
@ -177,6 +191,16 @@ function toggleActions() {
colors(item);
});
$('a[data-action=item_crop]').on('click', function (e) {
item = getOneSelectedElement($(this).parents('.file-item').data('id'));
crop(item);
});
$('a[data-action=item_resize]').on('click', function (e) {
item = getOneSelectedElement($(this).parents('.file-item').data('id'));
resize(item);
});
$('a[data-action=item_trash]').on('click', function () {
var items = [];
items.push(getOneSelectedElement($(this).parents('.file-item').data('id')));
@ -207,9 +231,12 @@ function toggleActions() {
});
/* var one_selected = selected.length === 1;
var many_selected = selected.length >= 1;
var only_image = getSelectedItems()
.filter(function (item) { return !item.is_image; })
.length === 0;
var only_file = getSelectedItems()
@ -342,10 +369,11 @@ var refreshFoldersAndItems = function (data) {
}
};
var hideNavAndShowEditor = function (data) {
$('#nav-buttons > ul').addClass('d-none');
$(lfm_content).html(data).removeClass('preserve_actions_space');
clearSelected();
var hideNavAndShowEditor = function (data, callback = false) {
// $('#nav-buttons > ul').addClass('d-none');
//console.log(data);
notify(data, callback);
};
function loadItems() {
@ -359,9 +387,7 @@ function loadItems() {
lfm_items = response.items;
var hasItems = lfm_items.length !== 0;
$('#lfm_empty').toggleClass('d-none', hasItems);
//$(lfm_content).html(''); //.removeAttr('class');
var toprev = $('<div class="file-item" id="to-previous"><div class="file-item-icon file-item-level-up fas fa-level-up-alt text-secondary"></div><a href="javascript:void(0)" class="file-item-name">zurück</a></div>');
$(lfm_content).html('').append(toprev);
@ -403,19 +429,39 @@ function loadItems() {
}
});
if (item.thumb_url) {
var image = $('<div>').addClass('file-item-img').css('background-image', 'url("' + item.thumb_url + '?timestamp=' + item.time + '")');
var dot = $('<span>').addClass('badge badge-dot badge-default indicator').css({"background-color":item.color});
} else {
var image = $('<div>').addClass('file-item-icon fa ' + item.icon).css({"color":item.color});
var dot = $('<span>').addClass('badge badge-dot badge-default indicator').css({"background-color":item.color});
}
if(!item.is_file){
if(!item.is_image){ //no image
template.find('.link-item-crop').remove();
template.find('.link-item-resize').remove();
}else{
// template.find('.link-item-color').remove();
}
if(!item.is_file){ //dirs
template.find('.link-item-download').remove();
}
template.find('.file-item-name').before(image);
template.find('.file-item-name').text(item.name);
template.find('file-item-changed').text((new Date(item.time * 1000)).toLocaleString());
template.find('.file-item-name').append(dot);
var str = "";
if(item.dimension){
str += item.dimension + " | "
}
if(item.size){
str += item.size + " | "
}
str += (new Date(item.time * 1000)).toLocaleString();
template.find('.file-item-changed').text(str);
$(lfm_content).append(template);
});
}
@ -489,12 +535,15 @@ function rename(item) {
}
function colors(item) {
colorshue(lang['message-color'], item.color, function (color) {
performLfmRequest('colorshue', {
file: item.name,
new_color: color
}).done(refreshFoldersAndItems);
});
performLfmRequest('colorhue', {color: item.color})
.done(function (data) {
hideNavAndShowEditor(data, function () {
performLfmRequest('docolorhue', {
file: item.name,
new_color: $('#notify').find('input').val(),
}).done(refreshFoldersAndItems);
});
});
}
function trash(items) {
@ -557,7 +606,11 @@ function preview(item) {
if(item.icon == "fa-image" || item.icon == "fa-file-pdf"){
media.find('.media-preview').attr('src', item.url + '?timestamp=' + item.time).removeClass('d-none');
}else if(item.icon == "fab fa-youtube-square"){
media.find('.embed-responsive-item').attr('src', 'https://www.youtube.com/embed/' +item.content + '?rel=0');
media.find('.embed-responsive').removeClass('d-none');
media.find('.media-content').val(item.content);
media.find('.media-content').parent().removeClass('d-none');
}else{
var icon = $('<div>').addClass('file-item-icon fa ' + item.icon).css('color', item.color);
media.find('.file-manager-col-view').html(icon).removeClass('d-none');
@ -578,8 +631,6 @@ function preview(item) {
.append($('<i class="fas fa-external-link-alt ml-2"></i>'));
*/
notify(media);
}
@ -800,26 +851,4 @@ function dialog(title, value, callback) {
}
});
$('#dialog').modal('show').find('.modal-title').text(title);
}
function colorshue(title, color, callback) {
console.log(color);
$('#minicolors-hue').minicolors('value', color);
$('#colorhue').on('shown.bs.modal', function () {
//$('#colorhue').find('input').focus();
});
$('#colorhue').find('.btn-primary').unbind('click').click(function (e) {
callback($('#colorhue').find('input').val());
});
$('#colorhue').find('input').unbind('keypress.key13').bind('keypress.key13', function (e) {
if (e.which === 13) {
$('#colorhue').find('.btn-primary').click();
}
});
$('#colorhue').modal('show').find('.modal-title').text(title);
}
$('#minicolors-hue').minicolors({
control: 'hue',
position: 'bottom ' + 'left',
});
}

View file

@ -66,6 +66,17 @@
.messages-card {
overflow: visible;
}
.badge.indicator {
margin-left: 0.8em;
width: 0.8em;
height: 0.8em;
}
.file-manager-row-view .file-item-changed {
width: auto;
}
.default-style .file-manager-row-view .file-item-name {
width: auto;
}
</style>
@ -79,10 +90,10 @@
<!-- content list -->
<div class="col">
<div class="file-manager-actions container-p-x py-2">
<div>
<button id="lfm_upload" type="button" class="btn btn-primary mr-2"><i class="fas fa-upload"></i>&nbsp; Hochladen</button>
<button id="lfm_add-file" type="button" class="btn btn-default mr-2"><i class="fas fa-file"></i> Neue Datei</button>
<button id="lfm_add-folder" type="button" class="btn btn-secondary mr-2"><i class="fas fa-folder"></i> Neuer Ordner</button>
<div class="btn-group mr-2 d-none media-multi-settings">
<button type="button" class="btn btn-default md-btn-flat dropdown-toggle px-2" data-toggle="dropdown"><i class="ion ion-ios-settings"></i> Optionen</button>
@ -103,7 +114,7 @@
</div>
</div>
</div>
<a class="navbar-brand d-block d-lg-none" id="current_folder"></a>
<!-- <a class="navbar-brand d-block d-lg-none" id="current_folder"></a> -->
<div class="container-m-nx container-m-ny bg-lightest mb-2" id="lfm_breadcrumbs">
@ -141,7 +152,10 @@
<a class="dropdown-item" href="javascript:void(0)" data-action="item_rename"><i class="fa fa-sync-alt"></i> umbenennen</a>
<a class="dropdown-item" href="javascript:void(0)" data-action="item_move"><i class="fa fa-reply"></i> verschieben</a>
<a class="dropdown-item link-item-download" href="javascript:void(0)" data-action="item_download"><i class="fa fa-download"></i> download</a>
<a class="dropdown-item" href="javascript:void(0)" data-action="item_color"><i class="fa fa-paint-brush"></i> Farbe</a>
<a class="dropdown-item link-item-crop" href="javascript:void(0)" data-action="item_crop"><i class="fa fa-crop"></i> zuschneiden</a>
<!-- <a class="dropdown-item link-item-resize" href="javascript:void(0)" data-action="item_resize"><i class="fa fa-crop"></i> Größe ändern</a> -->
<a class="dropdown-item link-item-color" href="javascript:void(0)" data-action="item_color"><i class="fa fa-paint-brush"></i> Farbe</a>
<a class="dropdown-item" href="javascript:void(0)" data-action="item_trash"><i class="fa fa-trash"></i> löschen</a>
</div>
</div>
@ -223,6 +237,9 @@
<div class="modal fade" id="notify" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title"></h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary w-100" data-dismiss="modal">{{ trans('laravel-filemanager::lfm.btn-close') }}</button>
@ -249,35 +266,27 @@
</div>
</div>
<div class="modal fade" id="colorhue" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title"></h4>
</div>
<div class="modal-body">
<input type="text" name="color" id="minicolors-hue" class="form-control" value="#fff">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary w-100" data-dismiss="modal">{{ trans('laravel-filemanager::lfm.btn-close') }}</button>
<button type="button" class="btn btn-primary w-100" data-dismiss="modal">{{ trans('laravel-filemanager::lfm.btn-confirm') }}</button>
</div>
</div>
</div>
</div>
<div id="previewTemplate" class="d-none bg-light text-center">
<div class="ui-bordered">
<img src="#" alt="" class="img-fluid media-preview d-none" style="background-color: #fff;">
<div class="file-manager-col-view d-none"></div>
<div class="embed-responsive embed-responsive-16by9 d-none">
<iframe class="embed-responsive-item" src="" allowfullscreen></iframe>
</div>
<div class="p-3">
<span class="float-right"><a href="#" class="media-download"><i class="fas fa-external-link-alt"></i></a></span>
<h5 class="media-name"> </h5>
<div class="form-group d-none">
<input type="text" class="form-control media-content" readonly>
</div>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="ion ion-md-link"></i></span>
</div>
<input type="text" class="form-control media-url" placeholder="Link" readonly>
<div class="input-group-append">
<span class="input-group-text"><a href="#" class="media-download"><i class="fas fa-external-link-alt"></i></a></span>
</div>
</div>
</div>
</div>

View file

Before

Width:  |  Height:  |  Size: 436 KiB

After

Width:  |  Height:  |  Size: 436 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 KiB

View file

@ -0,0 +1 @@
Rpo5py2fjrg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View file

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 139 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View file

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

View file

@ -0,0 +1 @@
Rpo5py2fjrg

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View file

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
vendor.zip Normal file

Binary file not shown.