%PDF- %PDF-
Direktori : /var/www/html/evablog/resources/views/ |
Current File : /var/www/html/evablog/resources/views/post.blade.php |
@extends('layouts.app') @section('content') <div class="categories-container"> <div class="row"> <div class="col-sm-12"> <form class="needs-validation {{$errors->count() > 0 ? 'was-validated' : ''}}" method="POST" autocomplete="off" action="{{ route('dashboard.posts.createOrUpdate', $id) }}" enctype="multipart/form-data" novalidate> {{ csrf_field() }} <div class="form-group row"> <label for="title" class="col-sm-2 col-form-label">Title</label> <div class="col-sm-10"> <input id="title" type="text" name="title" placeholder="Title" class="form-control {{$errors->has('title') ? 'is-invalid' : 'is-valid'}}" value="{{ $post->title }}" required> @if ($errors->has('name')) <div class="invalid-feedback"> {{ $errors->first('title') }} </div> @endif </div> </div> <div class="form-group row"> <label for="title" class="col-sm-2 col-form-label">Description</label> <div class="col-sm-10"> <input id="description" type="text" name="description" placeholder="Description" class="form-control {{$errors->has('description') ? 'is-invalid' : 'is-valid'}}" value="{{ $post->description }}" required> @if ($errors->has('description')) <div class="invalid-feedback"> {{ $errors->first('description') }} </div> @endif </div> </div> <div class="form-group row"> <label for="media" class="col-sm-2 col-form-label">Image</label> <div class="col-sm-10"> <div class="input-group"> <div class="custom-file"> <input type="file" class="custom-file-input" id="media" name="media" accept="image/*" onchange="fileChanged(this)"> <label class="custom-file-label" id="media-input-label" for="media">Choose file</label> </div> </div> @if ($errors->has('media')) <div class="invalid-feedback"> {{ $errors->first('media') }} </div> @endif </div> </div> @if ($id !== 'new') <div class="form-group row"> <label for="categories" class="col-sm-2 col-form-label">Categories</label> <div class="col-sm-10"> <input type="text" class="form-control" id="categories" name="categories" data-source="{{$post->categories}}" placeholder="Categories" data-is-new="{{($post->id)}}" data-role="tagsinput"> </div> </div> @endif <div class="form-group row"> <div class="col-md-6 offset-md-2"> <img class="img-fluid" id="image-preview" src="{{$post->media()->first() ? $post->media()->first()->getUrl() : ''}}"/> </div> </div> <div class="form-group row"> <div class="col-sm-8 offset-sm-2"> <button type="submit" class="btn btn-outline-primary">Save</button> </div> </div> </form> </div> </div> </div> @endsection @section('script') <script src="{{asset('js/libs/tagsinput.js')}}"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/typeahead.js/0.11.1/typeahead.bundle.min.js"></script> <script> var element = $('#categories'); var postId = element.attr('data-is-new'); var skills = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('id'), queryTokenizer: Bloodhound.tokenizers.whitespace, remote: { url: '/api/categories/actions/autoComplete?name=%QUERY%', wildcard: '%QUERY%' } }); skills.initialize(); element.tagsinput({ itemValue: 'name', itemText: 'name', maxChars: 30, trimValue: true, allowDuplicates: false, freeInput: true, focusClass: 'form-control', tagClass: function () { return 'badge badge-dark'; }, onTagExists: function (item, $tag) { $tag.hide().fadeIn(); }, typeaheadjs: [ { hint: false, highlight: true }, { name: 'categories', itemValue: 'id', displayKey: 'name', source: skills.ttAdapter(), templates: { header: [ '<ul class="list-group">' ], suggestion: function (data) { return '<li class="list-group-item">' + data.name + '</li>' } } } ] }); try { var dataSource = JSON.parse(element.attr('data-source')); dataSource.forEach(function (value) { element.tagsinput('add', value); }); } catch (e) { } element.on('beforeItemAdd', function (event) { $.ajax({ type: 'GET', url: '/api/posts/' + postId + '/attachCategory/' + event.item.id, dataType: 'json' }); }); element.on('beforeItemRemove', function (event) { $.ajax({ type: 'GET', url: '/api/posts/' + postId + '/detachCategory/' + event.item.id, dataType: 'json' }); }); </script> <script> function fileChanged (input) { if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function (e) { $('#image-preview').attr('src', e.target.result); $('#media-input-label').text(input.files[0].name); }; reader.readAsDataURL(input.files[0]); } } </script> @endsection