200 lines
8.1 KiB
PHP
200 lines
8.1 KiB
PHP
@extends('themes.base.layout')
|
|
@section('title', $album->name)
|
|
|
|
@section('content')
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-xs-12">
|
|
<h1>{{ $album->name }}</h1>
|
|
<p>{{ $album->description }}</p>
|
|
<hr/>
|
|
|
|
<div>
|
|
<ul class="nav nav-tabs" role="tablist">
|
|
<li role="presentation" class="active"><a href="#photos-tab" aria-controls="photos-tab" role="tab" data-toggle="tab"><i class="fa fa-fw fa-photo"></i> @lang('admin.album_photos_tab')</a></li>
|
|
<li role="presentation"><a href="#upload-tab" aria-controls="upload-tab" role="tab" data-toggle="tab"><i class="fa fa-fw fa-upload"></i> @lang('admin.album_upload_tab')</a></li>
|
|
<li role="presentation"><a href="#settings-tab" aria-controls="settings-tab" role="tab" data-toggle="tab"><i class="fa fa-fw fa-cog"></i> @lang('admin.album_settings_tab')</a></li>
|
|
</ul>
|
|
|
|
<div class="tab-content">
|
|
{{-- Photos --}}
|
|
<div role="tabpanel" class="tab-pane active" id="photos-tab">
|
|
@if (count($photos) == 0)
|
|
<div class="text-center" style="margin-top: 30px;">
|
|
<h4 class="text-danger"><b>@lang('admin.album_no_photos_p1')</b></h4>
|
|
<p>@lang('admin.album_no_photos_p2')</p>
|
|
<p style="margin-top: 30px;"><button id="upload-button" class="btn btn-lg btn-success">@lang('admin.album_no_photos_button')</button></p>
|
|
</div>
|
|
@else
|
|
{!! Form::open(['route' => ['photos.updateBulk', $album->id], 'method' => 'PUT']) !!}
|
|
|
|
@foreach ($photos as $photo)
|
|
@include (Theme::viewName('partials.single_photo_admin'))
|
|
@endforeach
|
|
|
|
<div class="pull-right">
|
|
<button type="submit" class="btn btn-success">@lang('forms.save_action')</button>
|
|
</div>
|
|
<div class="clearfix"></div>
|
|
|
|
{!! Form::close() !!}
|
|
|
|
<div class="text-center">
|
|
{{ $photos->links() }}
|
|
</div>
|
|
@endif
|
|
</div>
|
|
|
|
{{-- Upload --}}
|
|
<div role="tabpanel" class="tab-pane" id="upload-tab">
|
|
<h4>Upload single images</h4>
|
|
|
|
{!! Form::open(['route' => 'photos.store', 'method' => 'POST', 'files' => true]) !!}
|
|
{!! Form::hidden('album_id', $album->id) !!}
|
|
|
|
<div class="form-group">
|
|
{!! Form::file('photo[]', ['class' => 'control-label', 'multiple' => 'multiple']) !!}
|
|
</div>
|
|
|
|
<div>
|
|
{!! Form::submit(trans('forms.upload_action'), ['class' => 'btn btn-success']) !!}
|
|
</div>
|
|
{!! Form::close() !!}
|
|
|
|
<hr/>
|
|
<h4>Bulk upload</h4>
|
|
|
|
{!! Form::open(['route' => 'photos.storeBulk', 'method' => 'POST', 'files' => true]) !!}
|
|
{!! Form::hidden('album_id', $album->id) !!}
|
|
|
|
<div class="form-group">
|
|
{!! Form::file('archive', ['class' => 'control-label']) !!}
|
|
</div>
|
|
|
|
<div>
|
|
{!! Form::submit(trans('forms.upload_action'), ['class' => 'btn btn-success']) !!}
|
|
</div>
|
|
{!! Form::close() !!}
|
|
</div>
|
|
|
|
{{-- Settings --}}
|
|
<div role="tabpanel" class="tab-pane" id="settings-tab">
|
|
<div class="btn-toolbar">
|
|
<a href="{{ route('albums.edit', ['id' => $album->id]) }}" class="btn btn-default">@lang('forms.edit_action')</a>
|
|
<a href="{{ route('albums.delete', ['id' => $album->id]) }}" class="btn btn-danger">@lang('forms.delete_action')</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endsection
|
|
|
|
@push('scripts')
|
|
<script type="text/javascript">
|
|
function deletePhoto(photo_id, parent)
|
|
{
|
|
var url = '{{ route('photos.destroy', ['id' => 0]) }}';
|
|
url = url.replace(/\/0$/, '/' + photo_id);
|
|
|
|
$('.loading', parent).show();
|
|
|
|
$.post(url, {'_method': 'DELETE'}, function(data)
|
|
{
|
|
window.location.reload();
|
|
});
|
|
}
|
|
|
|
function regenerateThumbnails(photo_id, parent)
|
|
{
|
|
var url = '{{ route('photos.regenerateThumbnails', ['id' => 0]) }}';
|
|
url = url.replace(/\/0$/, '/' + photo_id);
|
|
|
|
$('.loading', parent).show();
|
|
$.post(url, function()
|
|
{
|
|
var image = $('img.photo-thumbnail', parent);
|
|
var originalUrl = image.data('original-src');
|
|
image.attr('src', originalUrl + "&_=" + new Date().getTime());
|
|
|
|
$('.loading', parent).hide();
|
|
});
|
|
}
|
|
|
|
function rotatePhoto(photo_id, angle, parent)
|
|
{
|
|
var url = '{{ route('photos.rotate', ['id' => 0, 'angle' => 1]) }}';
|
|
url = url.replace('/0/', '/' + photo_id + '/');
|
|
url = url.replace(/\/1$/, '/' + angle);
|
|
|
|
$('.loading', parent).show();
|
|
$.post(url, function()
|
|
{
|
|
var image = $('img.photo-thumbnail', parent);
|
|
var originalUrl = image.data('original-src');
|
|
image.attr('src', originalUrl + "&_=" + new Date().getTime());
|
|
|
|
$('.loading', parent).hide();
|
|
});
|
|
}
|
|
|
|
$(document).ready(function() {
|
|
$('#upload-button').click(function() {
|
|
$('.nav-tabs a[href="#upload-tab"]').tab('show');
|
|
});
|
|
|
|
{{-- Photo editing tasks - the buttons beneath the photos in partials/single_photo_admin --}}
|
|
$('a.delete-photo').click(function() {
|
|
var parent = $(this).parents('.photo');
|
|
var photo_id = $(parent).data('photo-id');
|
|
|
|
$(this).dropdown('toggle');
|
|
|
|
bootbox.dialog({
|
|
message: 'Are you sure you want to delete this photo? This cannot be undone!',
|
|
title: 'Delete photo',
|
|
buttons: {
|
|
cancel: {
|
|
label: "Cancel",
|
|
className: "btn-default"
|
|
},
|
|
confirm: {
|
|
label: "Delete",
|
|
className: "btn-danger",
|
|
callback: function() {
|
|
deletePhoto(photo_id, parent);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
return false;
|
|
});
|
|
$('a.regenerate-thumbnails').click(function() {
|
|
var parent = $(this).parents('.photo');
|
|
var photo_id = $(parent).data('photo-id');
|
|
|
|
regenerateThumbnails(photo_id, parent);
|
|
$(this).dropdown('toggle');
|
|
return false;
|
|
});
|
|
$('a.rotate-photo-left').click(function() {
|
|
var parent = $(this).parents('.photo');
|
|
var photo_id = $(parent).data('photo-id');
|
|
|
|
rotatePhoto(photo_id, 90, parent);
|
|
$(this).dropdown('toggle');
|
|
return false;
|
|
});
|
|
$('a.rotate-photo-right').click(function() {
|
|
var parent = $(this).parents('.photo');
|
|
var photo_id = $(parent).data('photo-id');
|
|
|
|
rotatePhoto(photo_id, 270, parent);
|
|
$(this).dropdown('toggle');
|
|
return false;
|
|
});
|
|
})
|
|
</script>
|
|
@endpush |