From c2f0472682539d3600bc556495013f50d8d34fb5 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 2 Jul 2019 16:41:12 +0200 Subject: [PATCH] #2843 --- src/app/Magic/Fields/Date.php | 10 ++ src/app/Magic/Fields/Datetime.php | 22 +++ src/app/Magic/Models/News.php | 48 ++++++ .../views/fields/select_and_order.blade.php | 153 ++++++++++++++++++ 4 files changed, 233 insertions(+) create mode 100644 src/app/Magic/Fields/Date.php create mode 100644 src/app/Magic/Fields/Datetime.php create mode 100644 src/app/Magic/Models/News.php create mode 100644 src/resources/views/fields/select_and_order.blade.php diff --git a/src/app/Magic/Fields/Date.php b/src/app/Magic/Fields/Date.php new file mode 100644 index 0000000..ca59d88 --- /dev/null +++ b/src/app/Magic/Fields/Date.php @@ -0,0 +1,10 @@ + 'DD/MM/YYYY HH:mm', 'language' => 'fr']; + protected $_databaseType='datetime'; + + public function _mutator($value) + { + return \Date::parse($value); + } + + public function getDefaultAttributes() + { + return array_merge(parent::getDefaultAttributes(), ['datetime_picker_options' => $this->pickerOptions]); + } +} diff --git a/src/app/Magic/Models/News.php b/src/app/Magic/Models/News.php new file mode 100644 index 0000000..a974717 --- /dev/null +++ b/src/app/Magic/Models/News.php @@ -0,0 +1,48 @@ + 'news', + 'singular' => 'actualité', + 'plural' => 'actualités']; + + public function setFields() + { + parent::setFields(); + + $this->addField(['name' => 'title', + 'label' => 'Titre', + 'type' => 'Text', + 'column' => true]); + + $this->addField(['name' => 'slug', + 'type' => 'Slug', + 'label' => 'Slug (URL)']); + + $this->addField(['name' => 'date', + 'type' => 'Datetime', + 'label' => 'Date de publication', + 'column' => true]); + + $this->addField(['name' => 'chapo', + 'type' => 'Textarea', + 'label' => 'Chapo']); + + $this->addField(['name' => 'image', + 'type' => 'Images', + 'label' => 'Image']); + + $this->addField(['name' => 'status', + 'type' => 'SelectFormArray', + 'options' => ['0' => 'Offline', '1' => 'Published'], + 'column' => true + ]); + } +} diff --git a/src/resources/views/fields/select_and_order.blade.php b/src/resources/views/fields/select_and_order.blade.php new file mode 100644 index 0000000..898d09f --- /dev/null +++ b/src/resources/views/fields/select_and_order.blade.php @@ -0,0 +1,153 @@ + +@php + $values = isset($field['value']) ? (array)$field['value'] : []; +@endphp + +
+ + @include('crud::inc.field_translatable_icon') +
+
    + @if(old($field["name"])) + @if(is_array(old($field["name"]))) + @foreach (old($field["name"]) as $key) + @if(array_key_exists($key,$field['options'])) +
  • {{ $field['options'][$key] }}
  • + @endif + @endforeach + @endif + @elseif (is_array($values)) + @foreach ($values as $key) + @if(array_key_exists($key,$field['options'])) +
  • {{ $field['options'][$key] }}
  • + @endif + @endforeach + @endif +
+
    + @if(old($field["name"])) + @foreach ($field['options'] as $key => $value) + @if(!is_array(old($field["name"])) || !in_array($key, old($field["name"]))) +
  • {{ $value }}
  • + @endif + @endforeach + @elseif (isset($field['options'])) + @foreach ($field['options'] as $key => $value) + @if(is_array($values) && !in_array($key, $values)) +
  • {{ $value }}
  • + @endif + @endforeach + @endif +
+ + {{-- The results will be stored here --}} +
+
+ + + + {{-- HINT --}} + @if (isset($field['hint'])) +

{!! $field['hint'] !!}

+ @endif +
+ + +{{-- ########################################## --}} +{{-- Extra CSS and JS for this particular field --}} +{{-- If a field type is shown multiple times on a form, the CSS and JS will only be loaded once --}} +@if ($crud->checkIfFieldIsFirstOfItsType($field, $fields)) + + {{-- FIELD CSS - will be loaded in the after_styles section --}} + @push('crud_fields_styles') + + @endpush + + @push('crud_fields_scripts') + + @endpush + +@endif + +{{-- FIELD JS - will be loaded in the after_scripts section --}} +@push('crud_fields_scripts') + +@endpush + +{{-- End of Extra CSS and JS --}} +{{-- ########################################## --}} -- 2.39.5