%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/evablog/resources/views/
Upload File :
Create Path :
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

Zerion Mini Shell 1.0