1
0

downgrade to kirby v3

This commit is contained in:
Philip Wagner
2024-09-01 10:47:15 +02:00
parent a4b2aece7b
commit af86acb7a1
1085 changed files with 54743 additions and 65042 deletions

View File

@@ -1,7 +1,6 @@
<?php
use Kirby\Cms\File;
use Kirby\Cms\Files;
use Kirby\Toolkit\I18n;
return [
@@ -19,12 +18,6 @@ return [
'sort'
],
'props' => [
/**
* Filters pages by a query. Sorting will be disabled
*/
'query' => function (string|null $query = null) {
return $query;
},
/**
* Filters all files by template and also sets the template, which will be used for all uploads
*/
@@ -47,7 +40,7 @@ return [
'template' => $this->template
]);
return $file->blueprint()->acceptAttribute();
return $file->blueprint()->acceptMime();
}
return null;
@@ -55,27 +48,15 @@ return [
'parent' => function () {
return $this->parentModel();
},
'models' => function () {
if ($this->query !== null) {
$files = $this->parent->query($this->query, Files::class) ?? new Files([]);
} else {
$files = $this->parent->files();
}
'files' => function () {
$files = $this->parent->files()->template($this->template);
// filter files by template
$files = $files->template($this->template);
// filter out all protected and hidden files
$files = $files->filter('isListable', true);
// filter out all protected files
$files = $files->filter('isReadable', true);
// search
if ($this->search === true && empty($this->searchterm()) === false) {
$files = $files->search($this->searchterm());
// disable flip and sortBy while searching
// to show most relevant results
$this->flip = false;
$this->sortBy = null;
}
// sort
@@ -99,9 +80,6 @@ return [
return $files;
},
'files' => function () {
return $this->models;
},
'data' => function () {
$data = [];
@@ -109,7 +87,7 @@ return [
// a different parent model
$dragTextAbsolute = $this->model->is($this->parent) === false;
foreach ($this->models as $file) {
foreach ($this->files as $file) {
$panel = $file->panel();
$item = [
@@ -140,7 +118,7 @@ return [
return $data;
},
'total' => function () {
return $this->models->pagination()->total();
return $this->files->pagination()->total();
},
'errors' => function () {
$errors = [];
@@ -179,9 +157,10 @@ return [
}
// count all uploaded files
$max = $this->max ? $this->max - $this->total : null;
$total = count($this->data);
$max = $this->max ? $this->max - $total : null;
if ($this->max && $this->total === $this->max - 1) {
if ($this->max && $total === $this->max - 1) {
$multiple = false;
} else {
$multiple = true;
@@ -194,43 +173,21 @@ return [
'multiple' => $multiple,
'max' => $max,
'api' => $this->parent->apiUrl(true) . '/files',
'attributes' => [
// TODO: an edge issue that needs to be solved:
// if multiple users load the same section
// at the same time and upload a file,
// uploaded files have the same sort number
'sort' => $this->sortable === true ? $this->total + 1 : null,
'attributes' => array_filter([
'sort' => $this->sortable === true ? $total + 1 : null,
'template' => $template
]
])
];
}
],
// @codeCoverageIgnoreStart
'api' => function () {
return [
[
'pattern' => 'sort',
'method' => 'PATCH',
'action' => function () {
$this->section()->model()->files()->changeSort(
$this->requestBody('files'),
$this->requestBody('index')
);
return true;
}
]
];
},
// @codeCoverageIgnoreEnd
'toArray' => function () {
return [
'data' => $this->data,
'errors' => $this->errors,
'options' => [
'accept' => $this->accept,
'apiUrl' => $this->parent->apiUrl(true) . '/sections/' . $this->name,
'columns' => $this->columnsWithTypes(),
'apiUrl' => $this->parent->apiUrl(true),
'columns' => $this->columns,
'empty' => $this->empty,
'headline' => $this->headline,
'help' => $this->help,