diff --git a/app/Http/Controllers/MMCController.php b/app/Http/Controllers/MMCController.php index c8a5299..27b662f 100644 --- a/app/Http/Controllers/MMCController.php +++ b/app/Http/Controllers/MMCController.php @@ -7,6 +7,8 @@ use App\Models\Project; use App\Models\AUK; use App\Models\MMC; use Illuminate\Support\Facades\Log; +use Illuminate\Http\Response; + @@ -75,23 +77,52 @@ class MMCController extends Controller * @param int $id * @return \Illuminate\Http\Response */ - public function show(Request $request, $id) + public function show(Request $request, $auk_id, $mmc_id) { $project_id = $request->session()->get('project_id'); $project = Project::find($project_id); - $mmc = MMC::find($id); - $auk = $mmc->auks()->first(); + $auk = AUK::find($auk_id); + $MMC = $auk->mmcs; + $current_mmc = ''; + if ($mmc_id == 0) { + $current_mmc = $MMC->first(); + } else { + $current_mmc = MMC::find($mmc_id); + } + return view('mmc.show', ['project' => $project, 'auk' => $auk, 'current_mmc' => $current_mmc]); + } + + /** + * Display the specified resource. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function getimage(Request $request, $auk_id, $mmc_id) + { + $project_id = $request->session()->get('project_id'); + $project = Project::find($project_id); + + $auk = AUK::find($auk_id); + $mmc = MMC::find($mmc_id); $filePath = $project->mmc_path . '/' . $auk->auk_path . '/' . $auk->image_dir . '/' . $mmc->filename; - if(strcasecmp(substr($mmc->filename, -3, 3), 'svg') == 0 ) - { - // $svg = file_get_contents($filePath); - // return response()->header('Content-Type', 'image/svg+xml')->file($filePath); + // return response()->file($filePath); + if (strcasecmp(substr($mmc->filename, -3, 3), 'svg') == 0) { + // $svg = readfile($filePath); + // $response = Response::make($svg, 200); + // $response->header('Content-Type', 'image/svg+xml'); + // $response->header('Content-disposition', 'attachment; filename="' . $mmc->filename . '"'); + + // return $response; + // return response($svg)->header('Content-Type', 'image/svg+xml'); + // return response()->header('filename', $mmc->filename)->file($filePath); + // file($filePath)->header('Content-Type', 'image/svg+xml'); - } - else - { + return view('components.svg',['project'=>$project, 'auk' => $auk, 'mmc' => $mmc]); + } else { return response()->file($filePath); } } @@ -202,7 +233,7 @@ class MMCController extends Controller while ($request->input('filename_' . $i) !== null) { $filename = $request->input('filename_' . $i); $size = $request->input('size_' . $i); - $mtime= $request->input('mtime_' . $i); + $mtime = $request->input('mtime_' . $i); // Log::alert("filename \"" . $filename . "\""); // Log::alert("size \"" . $size . "\""); // Log::alert("mtime \"" . $mtime . "\""); diff --git a/public/css/app.css b/public/css/app.css index 26ca13e..e31a4d7 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -734,12 +734,6 @@ select { .-mt-px { margin-top: -1px; } -.-mr-2 { - margin-right: -0.5rem; -} -.mt-3 { - margin-top: 0.75rem; -} .mt-1 { margin-top: 0.25rem; } @@ -749,6 +743,12 @@ select { .mt-6 { margin-top: 1.5rem; } +.mt-3 { + margin-top: 0.75rem; +} +.-mr-2 { + margin-right: -0.5rem; +} .block { display: block; } @@ -779,6 +779,9 @@ select { .h-16 { height: 4rem; } +.h-20 { + height: 5rem; +} .h-10 { height: 2.5rem; } @@ -788,9 +791,6 @@ select { .h-6 { height: 1.5rem; } -.h-20 { - height: 5rem; -} .min-h-screen { min-height: 100vh; } @@ -803,15 +803,6 @@ select { .w-auto { width: auto; } -.w-4 { - width: 1rem; -} -.w-6 { - width: 1.5rem; -} -.w-48 { - width: 12rem; -} .w-96 { width: 24rem; } @@ -821,6 +812,15 @@ select { .w-20 { width: 5rem; } +.w-48 { + width: 12rem; +} +.w-4 { + width: 1rem; +} +.w-6 { + width: 1.5rem; +} .max-w-7xl { max-width: 80rem; } @@ -836,6 +836,15 @@ select { .basis-1\/2 { flex-basis: 50%; } +.basis-1\/4 { + flex-basis: 25%; +} +.basis-3\/4 { + flex-basis: 75%; +} +.basis-1\/3 { + flex-basis: 33.333333%; +} .origin-top-left { transform-origin: top left; } @@ -924,12 +933,15 @@ select { .border { border-width: 1px; } -.border-t { - border-top-width: 1px; +.border-2 { + border-width: 2px; } .border-b { border-bottom-width: 1px; } +.border-t { + border-top-width: 1px; +} .border-b-2 { border-bottom-width: 2px; } @@ -944,16 +956,16 @@ select { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity)); } -.border-gray-100 { - --tw-border-opacity: 1; - border-color: rgb(243 244 246 / var(--tw-border-opacity)); +.border-transparent { + border-color: transparent; } .border-indigo-400 { --tw-border-opacity: 1; border-color: rgb(129 140 248 / var(--tw-border-opacity)); } -.border-transparent { - border-color: transparent; +.border-gray-100 { + --tw-border-opacity: 1; + border-color: rgb(243 244 246 / var(--tw-border-opacity)); } .bg-white { --tw-bg-opacity: 1; @@ -967,10 +979,6 @@ select { --tw-bg-opacity: 1; background-color: rgb(59 130 246 / var(--tw-bg-opacity)); } -.bg-indigo-50 { - --tw-bg-opacity: 1; - background-color: rgb(238 242 255 / var(--tw-bg-opacity)); -} .bg-gray-500 { --tw-bg-opacity: 1; background-color: rgb(107 114 128 / var(--tw-bg-opacity)); @@ -979,6 +987,14 @@ select { --tw-bg-opacity: 1; background-color: rgb(31 41 55 / var(--tw-bg-opacity)); } +.bg-indigo-50 { + --tw-bg-opacity: 1; + background-color: rgb(238 242 255 / var(--tw-bg-opacity)); +} +.bg-green-500 { + --tw-bg-opacity: 1; + background-color: rgb(34 197 94 / var(--tw-bg-opacity)); +} .fill-current { fill: currentColor; } @@ -1003,9 +1019,9 @@ select { padding-left: 0.5rem; padding-right: 0.5rem; } -.py-6 { - padding-top: 1.5rem; - padding-bottom: 1.5rem; +.py-12 { + padding-top: 3rem; + padding-bottom: 3rem; } .py-4 { padding-top: 1rem; @@ -1019,34 +1035,31 @@ select { padding-top: 0.25rem; padding-bottom: 0.25rem; } -.py-12 { - padding-top: 3rem; - padding-bottom: 3rem; -} .px-1 { padding-left: 0.25rem; padding-right: 0.25rem; } -.pt-8 { - padding-top: 2rem; -} -.pt-2 { - padding-top: 0.5rem; -} -.pb-3 { - padding-bottom: 0.75rem; +.py-6 { + padding-top: 1.5rem; + padding-bottom: 1.5rem; } .pt-4 { padding-top: 1rem; } -.pb-1 { - padding-bottom: 0.25rem; +.pt-8 { + padding-top: 2rem; +} +.pr-2 { + padding-right: 0.5rem; } .pl-2 { padding-left: 0.5rem; } -.pr-2 { - padding-right: 0.5rem; +.pb-4 { + padding-bottom: 1rem; +} +.pt-6 { + padding-top: 1.5rem; } .pt-1 { padding-top: 0.25rem; @@ -1057,11 +1070,14 @@ select { .pr-4 { padding-right: 1rem; } -.pb-4 { - padding-bottom: 1rem; +.pt-2 { + padding-top: 0.5rem; } -.pt-6 { - padding-top: 1.5rem; +.pb-3 { + padding-bottom: 0.75rem; +} +.pb-1 { + padding-bottom: 0.25rem; } .pb-2 { padding-bottom: 0.5rem; @@ -1085,22 +1101,22 @@ select { font-size: 0.875rem; line-height: 1.25rem; } -.text-lg { - font-size: 1.125rem; - line-height: 1.75rem; -} -.text-base { - font-size: 1rem; - line-height: 1.5rem; -} .text-xl { font-size: 1.25rem; line-height: 1.75rem; } +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} .text-xs { font-size: 0.75rem; line-height: 1rem; } +.text-base { + font-size: 1rem; + line-height: 1.5rem; +} .font-medium { font-weight: 500; } @@ -1116,12 +1132,12 @@ select { .leading-5 { line-height: 1.25rem; } -.leading-7 { - line-height: 1.75rem; -} .leading-tight { line-height: 1.25; } +.leading-7 { + line-height: 1.75rem; +} .tracking-widest { letter-spacing: 0.1em; } @@ -1133,6 +1149,14 @@ select { --tw-text-opacity: 1; color: rgb(55 65 81 / var(--tw-text-opacity)); } +.text-gray-800 { + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); +} +.text-green-500 { + --tw-text-opacity: 1; + color: rgb(34 197 94 / var(--tw-text-opacity)); +} .text-gray-200 { --tw-text-opacity: 1; color: rgb(229 231 235 / var(--tw-text-opacity)); @@ -1153,22 +1177,6 @@ select { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity)); } -.text-gray-800 { - --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity)); -} -.text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.text-green-500 { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity)); -} -.text-indigo-700 { - --tw-text-opacity: 1; - color: rgb(67 56 202 / var(--tw-text-opacity)); -} .text-blue-500 { --tw-text-opacity: 1; color: rgb(59 130 246 / var(--tw-text-opacity)); @@ -1177,6 +1185,10 @@ select { --tw-text-opacity: 1; color: rgb(239 68 68 / var(--tw-text-opacity)); } +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} .text-indigo-600 { --tw-text-opacity: 1; color: rgb(79 70 229 / var(--tw-text-opacity)); @@ -1189,6 +1201,10 @@ select { --tw-text-opacity: 1; color: rgb(220 38 38 / var(--tw-text-opacity)); } +.text-indigo-700 { + --tw-text-opacity: 1; + color: rgb(67 56 202 / var(--tw-text-opacity)); +} .underline { -webkit-text-decoration-line: underline; text-decoration-line: underline; @@ -1213,16 +1229,16 @@ select { --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } -.shadow-lg { - --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} .shadow-md { --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } +.shadow-lg { + --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} .ring-1 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); @@ -9077,21 +9093,25 @@ readers do not read off random characters that represent icons */ --tw-border-opacity: 1; border-color: rgb(209 213 219 / var(--tw-border-opacity)); } -.hover\:bg-gray-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity)); -} .hover\:bg-blue-700:hover { --tw-bg-opacity: 1; background-color: rgb(29 78 216 / var(--tw-bg-opacity)); } +.hover\:bg-gray-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(55 65 81 / var(--tw-bg-opacity)); +} +.hover\:bg-gray-100:hover { + --tw-bg-opacity: 1; + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); +} .hover\:bg-gray-50:hover { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); } -.hover\:bg-gray-700:hover { +.hover\:bg-green-700:hover { --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity)); + background-color: rgb(21 128 61 / var(--tw-bg-opacity)); } .hover\:text-gray-500:hover { --tw-text-opacity: 1; @@ -9101,17 +9121,13 @@ readers do not read off random characters that represent icons */ --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); } -.hover\:text-gray-700:hover { - --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity)); -} .hover\:text-green-700:hover { --tw-text-opacity: 1; color: rgb(21 128 61 / var(--tw-text-opacity)); } -.hover\:text-gray-800:hover { +.hover\:text-gray-700:hover { --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity)); + color: rgb(55 65 81 / var(--tw-text-opacity)); } .hover\:text-blue-700:hover { --tw-text-opacity: 1; @@ -9125,6 +9141,10 @@ readers do not read off random characters that represent icons */ --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity)); } +.hover\:text-gray-800:hover { + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); +} .focus\:z-10:focus { z-index: 10; } @@ -9132,14 +9152,6 @@ readers do not read off random characters that represent icons */ --tw-border-opacity: 1; border-color: rgb(147 197 253 / var(--tw-border-opacity)); } -.focus\:border-gray-300:focus { - --tw-border-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-border-opacity)); -} -.focus\:border-indigo-700:focus { - --tw-border-opacity: 1; - border-color: rgb(67 56 202 / var(--tw-border-opacity)); -} .focus\:border-indigo-300:focus { --tw-border-opacity: 1; border-color: rgb(165 180 252 / var(--tw-border-opacity)); @@ -9148,6 +9160,14 @@ readers do not read off random characters that represent icons */ --tw-border-opacity: 1; border-color: rgb(17 24 39 / var(--tw-border-opacity)); } +.focus\:border-indigo-700:focus { + --tw-border-opacity: 1; + border-color: rgb(67 56 202 / var(--tw-border-opacity)); +} +.focus\:border-gray-300:focus { + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); +} .focus\:bg-gray-100:focus { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity)); @@ -9164,10 +9184,6 @@ readers do not read off random characters that represent icons */ --tw-text-opacity: 1; color: rgb(55 65 81 / var(--tw-text-opacity)); } -.focus\:text-gray-500:focus { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); -} .focus\:text-indigo-800:focus { --tw-text-opacity: 1; color: rgb(55 48 163 / var(--tw-text-opacity)); @@ -9176,6 +9192,10 @@ readers do not read off random characters that represent icons */ --tw-text-opacity: 1; color: rgb(31 41 55 / var(--tw-text-opacity)); } +.focus\:text-gray-500:focus { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} .focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; diff --git a/resources/views/components/svg.blade.php b/resources/views/components/svg.blade.php index 46633a4..9a9cc36 100644 --- a/resources/views/components/svg.blade.php +++ b/resources/views/components/svg.blade.php @@ -1,5 +1,8 @@ @php $filePath = $project->mmc_path . '/' . $auk->auk_path . '/' . $auk->image_dir . '/' . $mmc->filename; -$svg = file_get_contents($filePath); +$svg = ""; +if (strcasecmp(substr($mmc->filename, -3, 3), 'svg') == 0) { + $svg = readfile($filePath); +} @endphp {{ $svg }} diff --git a/resources/views/mmc/list.blade.php b/resources/views/mmc/list.blade.php index 8b1ef93..d278b68 100644 --- a/resources/views/mmc/list.blade.php +++ b/resources/views/mmc/list.blade.php @@ -25,23 +25,8 @@ {{ $top_auk->auk_name }} - - - - - - - - @forelse ($top_auk->mmcs as $mmc) - + @if (count($top_auk->mmcs)) + {{-- - - - @empty - - - - @endforelse -
- {{ __('File') }} - - {{ __('Size') }} - - {{ __('MTime') }} - - {{ __('Image') }} -
{{ $mmc->filename }} {{ $mmc['size'] }} @@ -62,24 +47,21 @@ ]) @endif - {{-- --}}
No MMC - - - -
+ --}} + + + + @else + + + @endif @if (count($top_auk->childs)) diff --git a/resources/views/mmc/show.blade.php b/resources/views/mmc/show.blade.php index d33645d..2e6baa1 100644 --- a/resources/views/mmc/show.blade.php +++ b/resources/views/mmc/show.blade.php @@ -3,10 +3,7 @@

- {{ __('Selected project') }}: {{ $project->name }} -
-
- {{ __('MMC path') }}: {{ $project->mmc_path }} + {{ $project->name }}: {{ $auk->auk_name }}: {{ __('MMC Show') }}

@@ -16,6 +13,54 @@
+
+ +
+
+
+ name: {{ $current_mmc->filename }} +
+
+ size: {{ $current_mmc->size }} +
+
+ mtime: {{ date('d.m.Y H:i:s', $current_mmc->mtime) }} +
+
+
+ @if (strcasecmp(substr($current_mmc->filename, -3, 3), 'svg') == 0) + {{-- + + --}} + Error load svg + {{-- --}} + @elseif (strcasecmp(substr($current_mmc->filename, -3, 3), 'jpg') == 0) + + @elseif (strcasecmp(substr($current_mmc->filename, -3, 3), 'swf') == 0) + Can't show FLASH!!! + @endif +
+
+
diff --git a/routes/web.php b/routes/web.php index 366779b..a0e7901 100644 --- a/routes/web.php +++ b/routes/web.php @@ -37,10 +37,14 @@ Route::prefix('admin')->middleware(['admin'])->group(function () { Route::resource('/projects', ProjectController::class)->middleware(['auth']); Route::post('/project/{project}/select',SelectProjectController::class)->middleware(['auth'])->name('project.select'); -Route::resource('/mmc', MMCController::class)->middleware(['auth'])->only(['index','create','show']); -Route::get('/mmc/scan/{auk}', [MMCController::class, 'scan'])->middleware(['auth'])->name('mmc.scan'); -Route::post('/mmc/load/{auk}', [MMCController::class, 'load'])->middleware(['auth'])->name('mmc.load'); +Route::resource('/mmc', MMCController::class)->middleware(['auth'])->only(['index','create']); +Route::get('/mmc/{auk}/show/{mmc}', [MMCController::class, 'show'])->middleware(['auth'])->name('mmc.show'); +Route::get('/mmc/{auk}/getimage/{mmc}', [MMCController::class, 'getimage'])->middleware(['auth'])->name('mmc.getimage'); +Route::get('/mmc/{auk}/scan', [MMCController::class, 'scan'])->middleware(['auth'])->name('mmc.scan'); +Route::post('/mmc/{auk}/load', [MMCController::class, 'load'])->middleware(['auth'])->name('mmc.load'); + Route::resource('/documents', DocumentController::class)->except('show')->middleware(['auth']); + Route::resource('/auks', AUKController::class)->except('show')->middleware(['auth']); Route::get('/auks/scan', [AUKController::class, 'scan'])->middleware(['auth'])->name('auks.scan'); Route::post('/auks/load', [AUKController::class, 'load'])->middleware(['auth'])->name('auks.load');