mirror of
https://github.com/prurigro/hypothetical.git
synced 2024-11-26 17:01:25 -05:00
222 lines
14 KiB
PHP
222 lines
14 KiB
PHP
@extends('dashboard.core')
|
|
|
|
@section('dashboard-body')
|
|
@if($help_text != '')
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="help-text">
|
|
{!! $help_text !!}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
<form id="edit-item" class="edit-item" data-id="{{ $id }}" data-model="{{ $model }}">
|
|
<input type="hidden" id="token" value="{{ csrf_token() }}" />
|
|
|
|
<div class="container-fluid">
|
|
@foreach($columns as $column)
|
|
<div class="row">
|
|
@php
|
|
$value = $item !== null ? $item[$column['name']] : '';
|
|
$type = $id == 'new' && array_key_exists('type-new', $column) ? $column['type-new'] : $column['type'];
|
|
$ext = array_key_exists('ext', $column) ? $column['ext'] : $default_img_ext;
|
|
@endphp
|
|
|
|
@if($type == 'hidden')
|
|
<input class="text-input" type="hidden" name="{{ $column['name'] }}" id="{{ $column['name'] }}" value="{{ $value }}" />
|
|
@elseif($type == 'user')
|
|
<input class="text-input" type="hidden" name="{{ $column['name'] }}" id="{{ $column['name'] }}" value="{{ Auth::id() }}" />
|
|
@elseif($type != 'display' || $id != 'new')
|
|
<div class="col-12 col-md-4 col-lg-3">
|
|
<label for="{{ $column['name'] }}">
|
|
{{ array_key_exists('title', $column) ? $column['title'] : ucfirst($column['name']) }}
|
|
|
|
@if($column['type'] == 'image')
|
|
@if($ext == 'svg')
|
|
(SVG)
|
|
@endif
|
|
@elseif($column['type'] == 'file')
|
|
({{ strtoupper($ext) }})
|
|
@endif
|
|
</label>
|
|
</div>
|
|
|
|
<div class="col-12 col-md-8 col-lg-9">
|
|
@if($type == 'string')
|
|
<input class="text-input" type="text" name="{{ $column['name'] }}" id="{{ $column['name'] }}" value="{{ $value }}" />
|
|
@elseif($type == 'text')
|
|
<textarea class="text-input" name="{{ $column['name'] }}" id="{{ $column['name'] }}">{{ $value }}</textarea>
|
|
@elseif($type == 'currency')
|
|
<input class="currency-input" type="text" name="{{ $column['name'] }}" id="{{ $column['name'] }}" value="{{ $value }}" autocomplete="off" />
|
|
@elseif($type == 'date' || $type == 'date-time')
|
|
<input class="date-picker" type="text" name="{{ $column['name'] }}" id="{{ $column['name'] }}" data-type="{{ $type }}" value="{{ $value == '' ? date('Y-m-d', time()) : preg_replace('/:[0-9][0-9]$/', '', $value) }}" />
|
|
@elseif($type == 'mkd')
|
|
<div class="mkd-editor-container">
|
|
<textarea class="mkd-editor" name="{{ $column['name'] }}" id="{{ $column['name'] }}" value="{{ $value }}"></textarea>
|
|
</div>
|
|
@elseif($type == 'select')
|
|
<select class="text-input" name="{{ $column['name'] }}" id="{{ $column['name'] }}">
|
|
@foreach($column['options'] as $option)
|
|
@if(is_array($option))
|
|
@php
|
|
$select_value = $option['value'];
|
|
$select_title = $option['title'];
|
|
@endphp
|
|
@else
|
|
@php
|
|
$select_value = $option;
|
|
$select_title = $option;
|
|
@endphp
|
|
@endif
|
|
|
|
@if(gettype($select_title) == 'boolean')
|
|
@php
|
|
$select_title = $select_title ? 'true' : 'false';
|
|
@endphp
|
|
@endif
|
|
|
|
@if(gettype($select_value) == 'boolean')
|
|
@php
|
|
$select_value = $select_value ? 1 : 0;
|
|
@endphp
|
|
@endif
|
|
|
|
@if($select_value === $value)
|
|
<option value="{{ $select_value }}" selected="selected">{{ $select_title }}</option>
|
|
@else
|
|
<option value="{{ $select_value }}">{{ $select_title }}</option>
|
|
@endif
|
|
@endforeach
|
|
</select>
|
|
@elseif($type == 'list')
|
|
@php
|
|
$list_model = App\Dashboard::getModel($value['model']);
|
|
$list_columns = $list_model::$dashboard_columns;
|
|
@endphp
|
|
|
|
<div class="list" id="{{ $column['name'] }}">
|
|
<div class="list-template">
|
|
<div class="list-items-row" data-id="new">
|
|
<div class="sort-icon" title="Click and drag to reorder">
|
|
<div class="sort-icon-inner">
|
|
<div class="sort-icon-inner-bar"></div>
|
|
<div class="sort-icon-inner-bar"></div>
|
|
<div class="sort-icon-inner-bar"></div>
|
|
</div>
|
|
</div>
|
|
|
|
@foreach($list_columns as $list_column)
|
|
<div class="list-items-row-content {{ count($list_columns) == 1 ? 'wide' : '' }}">
|
|
<div class="list-items-row-content-inner" data-column="{{ $list_column['name'] }}" data-type="{{ $list_column['type'] }}">
|
|
@if($list_column['type'] == 'string')
|
|
<input class="list-input" placeholder="{{ $list_column['name'] }}" />
|
|
@elseif($list_column['type'] == 'image')
|
|
<a class="image-link" href="" target="_blank"><img class="image-preview" src="" /></a>
|
|
<input class="list-input image-upload" type="file" data-column="{{ $list_column['name'] }}" data-model="{{ $value['model'] }}" />
|
|
@endif
|
|
</div>
|
|
</div>
|
|
@endforeach
|
|
|
|
<div class="list-items-row-buttons">
|
|
<button class="list-items-row-buttons-delete" type="button">Delete</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="list-data">
|
|
@if($id != 'new')
|
|
@foreach($value['list'] as $row)
|
|
<div class="list-data-row" data-id="{{ $row['id'] }}">
|
|
@foreach($list_columns as $list_column)
|
|
@if($list_column['type'] == 'string')
|
|
@php
|
|
$list_column_value = $row[$list_column['name']]
|
|
@endphp
|
|
@elseif($list_column['type'] == 'image')
|
|
@php
|
|
$list_column_item = $list_model::find($row['id']);
|
|
$list_column_image_ext = array_key_exists('ext', $list_column) ? $list_column['ext'] : $default_img_ext;
|
|
$list_column_image_path = $list_model->getUploadsPath('image') . $row['id'] . '-' . $list_column['name'] . '.' . $list_column_image_ext;
|
|
$list_column_value = file_exists(public_path($list_column_image_path)) ? $list_column_image_path . '?version=' . $list_column_item->timestamp() : '';
|
|
@endphp
|
|
|
|
{{ $list_column_image_path }}
|
|
@endif
|
|
|
|
<div class="list-data-row-item" data-type="{{ $list_column['type'] }}" data-column="{{ $list_column['name'] }}" data-value="{{ $list_column_value }}"></div>
|
|
@endforeach
|
|
</div>
|
|
@endforeach
|
|
@endif
|
|
</div>
|
|
|
|
<div class="list-items"></div>
|
|
<button class="list-add-button" type="button">Add</button>
|
|
</div>
|
|
@elseif($type == 'image')
|
|
@php
|
|
$current_image = "/uploads/$model/img/$id-" . $column['name'] . '.' . $ext;
|
|
@endphp
|
|
|
|
<input class="image-upload" type="file" data-column="{{ $column['name'] }}" data-model="{{ $model }}" data-id="{{ $id }}" />
|
|
|
|
@if(file_exists(base_path() . '/public' . $current_image))
|
|
<div id="current-image-{{ $column['name'] }}">
|
|
<img class="current-image" src="{{ $current_image }}?version={{ $item->timestamp() }}" />
|
|
|
|
@if(array_key_exists('delete', $column) && $column['delete'])
|
|
<span class="edit-button delete image" data-column="{{ $column['name'] }}" data-model="{{ $model }}" data-id="{{ $id }}">
|
|
Delete Image
|
|
</span>
|
|
@endif
|
|
</div>
|
|
@endif
|
|
@elseif($type == 'file')
|
|
@php
|
|
$current_file = "/uploads/$model/files/$id-" . $column['name'] . '.' . $column['ext'];
|
|
@endphp
|
|
|
|
<input class="file-upload" type="file" data-column="{{ $column['name'] }}" data-model="{{ $model }}" data-id="{{ $id }}" />
|
|
|
|
@if(file_exists(base_path() . '/public' . $current_file))
|
|
<div id="current-file-{{ $column['name'] }}">
|
|
<a class="edit-button view" href="{{ $current_file }}?version={{ $item->timestamp() }}" target="_blank">View {{ strtoupper($column['ext']) }}</a>
|
|
|
|
@if(array_key_exists('delete', $column) && $column['delete'])
|
|
<span class="edit-button delete file" data-column="{{ $column['name'] }}" data-model="{{ $model }}" data-id="{{ $id }}">
|
|
Delete {{ strtoupper($column['ext']) }}
|
|
</span>
|
|
@endif
|
|
</div>
|
|
@endif
|
|
@elseif($type == 'display')
|
|
<div class="text-display">{{ $value }}</div>
|
|
@endif
|
|
</div>
|
|
@endif
|
|
</div>
|
|
@endforeach
|
|
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<button id="back" type="button" class="back-button btn btn-secondary">Back</button>
|
|
<button id="submit" type="button" class="submit-button btn btn-primary no-input">{{ $id == 'new' ? 'Create' : 'Update' }} {{ $heading }} Item</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
|
|
<div id="loading-modal">
|
|
<div class="spinner-container">
|
|
<div class="sk-flow">
|
|
<div class="sk-flow-dot"></div>
|
|
<div class="sk-flow-dot"></div>
|
|
<div class="sk-flow-dot"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endsection
|