- add translated description
- creator required - filesize vrom ini file - correctly delete dataset in SubmitController
This commit is contained in:
parent
4f8ef4fc30
commit
a463cb9e4c
|
@ -271,7 +271,7 @@ class IndexController extends Controller
|
|||
$files = count($request->file('files')) - 1;
|
||||
foreach (range(0, $files) as $index) {
|
||||
// $rules['files.' . $index] = 'image|max:2048';
|
||||
$rules['files.' . $index . '.file'] = ['required', 'file', new RdrFiletypes(), new RdrFilesize($index + 1)];
|
||||
$rules['files.' . $index . '.file'] = ['required', new RdrFiletypes(), new RdrFilesize($index + 1)];
|
||||
}
|
||||
}
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
|
|
|
@ -98,16 +98,7 @@ class SubmitController extends Controller
|
|||
public function delete($id): RedirectResponse
|
||||
{
|
||||
$dataset = Dataset::with('files')->findOrFail($id);
|
||||
if ($dataset->server_state != "inprogress" || $dataset->server_state != "rejected_editor") {
|
||||
session()->flash(
|
||||
'flash_message',
|
||||
'You cannot delete this datastet!'
|
||||
. ' There status of this dataset is '
|
||||
. $dataset->server_state
|
||||
. ' !'
|
||||
);
|
||||
return redirect()->route('settings.project');
|
||||
} else {
|
||||
if ($dataset->server_state == "inprogress" || $dataset->server_state == "rejected_editor") {
|
||||
if ($dataset->files->count() > 0) {
|
||||
foreach ($dataset->files as $file) {
|
||||
if (isset($file->path_name)) {
|
||||
|
@ -117,7 +108,16 @@ class SubmitController extends Controller
|
|||
}
|
||||
$dataset->delete();
|
||||
session()->flash('flash_message', 'You have deleted 1 dataset!');
|
||||
return redirect()->route('publish.workflow.index');
|
||||
return redirect()->route('publish.workflow.submit.index');
|
||||
} else {
|
||||
session()->flash(
|
||||
'flash_message',
|
||||
'You cannot delete this datastet!'
|
||||
. ' There status of this dataset is '
|
||||
. $dataset->server_state
|
||||
. ' !'
|
||||
);
|
||||
return redirect()->route('publish.workflow.submit.index');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,8 @@ class RdrFilesize implements Rule
|
|||
*/
|
||||
public function __construct($fileIndex)
|
||||
{
|
||||
$this->maxFileSize = Config::get('enums.max_filesize');
|
||||
$this->maxFileSize = $this->maximumUploadSize();
|
||||
//ini_get('upload_max_filesize');// Config::get('enums.max_filesize');//10240
|
||||
$this->fileIndex = $fileIndex;
|
||||
}
|
||||
|
||||
|
@ -32,7 +33,7 @@ class RdrFilesize implements Rule
|
|||
//return Rule::in($this->filetypes);
|
||||
// $upload_max_size = ini_get('upload_max_filesize');
|
||||
$fileSize = filesize($value);
|
||||
return $fileSize <= $this->maxFileSize * 1024;
|
||||
return $fileSize <= $this->maxFileSize;
|
||||
// return $this->getSize($attribute, $value) <= $this->maxFileSize;
|
||||
}
|
||||
|
||||
|
@ -45,6 +46,51 @@ class RdrFilesize implements Rule
|
|||
{
|
||||
return 'file number '. $this->fileIndex .' is too large for the destination storage system.';
|
||||
}
|
||||
|
||||
/**
|
||||
* The maximum file upload size by getting PHP settings
|
||||
* @return integer|float file size limit in BYTES based
|
||||
*/
|
||||
private function maximumUploadSize()
|
||||
{
|
||||
static $upload_size = null;
|
||||
if ($upload_size === null) {
|
||||
$post_max_size = $this->returnBytes('post_max_size');
|
||||
$upload_max_filesize = $this->returnBytes('upload_max_filesize');
|
||||
$memory_limit = $this->returnBytes('memory_limit');
|
||||
// Even though we disable all of variables in php.ini. These still use default value
|
||||
// Nearly impossible but check for sure
|
||||
if (empty($post_max_size) && empty($upload_max_filesize) && empty($memory_limit)) {
|
||||
return false;
|
||||
}
|
||||
$upload_size = min($post_max_size, $upload_max_filesize, $memory_limit);
|
||||
}
|
||||
return $upload_size;
|
||||
}
|
||||
|
||||
private function returnBytes($val)
|
||||
{
|
||||
$value = ini_get($val);
|
||||
|
||||
// Value must be a string.
|
||||
if (!is_string($value)) {
|
||||
return false;
|
||||
}
|
||||
preg_match('/^(?<value>\d+)(?<option>[K|M|G]*)$/i', $value, $matches);
|
||||
$value = (int) $matches['value'];
|
||||
$option = strtoupper($matches['option']);
|
||||
|
||||
if ($option) {
|
||||
if ($option === 'K') {
|
||||
$value *= 1024;
|
||||
} elseif ($option === 'M') {
|
||||
$value *= 1024 * 1024;
|
||||
} elseif ($option === 'G') {
|
||||
$value *= 1024 * 1024 * 1024;
|
||||
}
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the size of an attribute.
|
||||
|
|
10
composer.lock
generated
10
composer.lock
generated
|
@ -1039,16 +1039,16 @@
|
|||
},
|
||||
{
|
||||
"name": "mcamara/laravel-localization",
|
||||
"version": "1.3.19",
|
||||
"version": "1.3.20",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mcamara/laravel-localization.git",
|
||||
"reference": "cf89d2515d576292e65bfa5893a0efd1cc5a4064"
|
||||
"reference": "af8f9f30488a83533dda3870fcc335b55cf964e0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/mcamara/laravel-localization/zipball/cf89d2515d576292e65bfa5893a0efd1cc5a4064",
|
||||
"reference": "cf89d2515d576292e65bfa5893a0efd1cc5a4064",
|
||||
"url": "https://api.github.com/repos/mcamara/laravel-localization/zipball/af8f9f30488a83533dda3870fcc335b55cf964e0",
|
||||
"reference": "af8f9f30488a83533dda3870fcc335b55cf964e0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -1097,7 +1097,7 @@
|
|||
"localization",
|
||||
"php"
|
||||
],
|
||||
"time": "2019-03-05T15:37:01+00:00"
|
||||
"time": "2019-06-28T16:04:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "monolog/monolog",
|
||||
|
|
|
@ -24,6 +24,5 @@ return [
|
|||
"htm|html" => "text/html",
|
||||
"png" => "image/png",
|
||||
"jpg|jpeg|jpe" => "image/jpeg",
|
||||
],
|
||||
'max_filesize' => 5120
|
||||
]
|
||||
];
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -114,7 +114,7 @@ const app = new Vue({
|
|||
});
|
||||
// add the required rule
|
||||
VeeValidate.Validator.extend('translatedLanguage', {
|
||||
getMessage: field => 'The translated title must be in a language other than than the dataset language.',
|
||||
getMessage: field => 'The translated ' + field + ' must be in a language other than than the dataset language.',
|
||||
validate: (value, [mainLanguage, type]) => {
|
||||
if (type == "translated") {
|
||||
return value !== mainLanguage;
|
||||
|
|
|
@ -114,7 +114,7 @@
|
|||
</td>
|
||||
<td>
|
||||
{!! Form::select('Title[Language]', $languages, null,
|
||||
['placeholder' => '[language]', 'v-model' => 'item.language',
|
||||
['placeholder' => '[language]', 'v-model' => 'item.language', "data-vv-as" => "title",
|
||||
"v-validate" => "{required: true, translatedLanguage: [dataset.language, item.type]}",
|
||||
'data-vv-scope' => 'step-1']) !!}
|
||||
</td>
|
||||
|
@ -168,7 +168,11 @@
|
|||
</td>
|
||||
<td>
|
||||
{!! Form::select('Description[Language]', $languages, null,
|
||||
['placeholder' => '[language]', 'v-model' => 'item.language', "v-validate" => "'required'", 'data-vv-scope' => 'step-1']) !!}
|
||||
['placeholder' => '[language]',
|
||||
'v-model' => 'item.language',
|
||||
"data-vv-as" => "description",
|
||||
"v-validate" => "{required: true, translatedLanguage: [dataset.language, item.type]}",
|
||||
'data-vv-scope' => 'step-1']) !!}
|
||||
</td>
|
||||
<td>
|
||||
<button class="pure-button button-small is-warning" @click.prevent="removeDescription(index)">-</button>
|
||||
|
@ -202,6 +206,7 @@
|
|||
{!! Form::label('additionalCreators', 'Add additional creator(s) if creator is not in database') !!}
|
||||
<button class="pure-button button-small" @click.prevent="addNewAuthor()">+</button>
|
||||
</div>
|
||||
<input name="persons" v-model="dataset.persons" type="hidden" class="form-check-input" v-validate="'required'" data-vv-as="Creator" data-vv-scope="step-1">
|
||||
<table class="pure-table pure-table-horizontal" v-if="dataset.persons.length">
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -680,7 +685,7 @@
|
|||
@{{ index +1 }}
|
||||
</td>
|
||||
<td>
|
||||
<input class="form-control" v-model="item.file.name" />
|
||||
<input class="form-control" v-model="item.file.name" readonly />
|
||||
</td>
|
||||
<td>
|
||||
<input class="form-control" v-model="item.label" />
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
<title>Admin PureRDR</title>
|
||||
<title>BACKEND RDR</title>
|
||||
<link rel="shortcut icon" type="image/x-icon" href="{{ asset('favicon.ico') }}">
|
||||
|
||||
{{-- <link rel='stylesheet' href="{{ asset('css/pure-min.css') }}" />
|
||||
|
@ -30,7 +30,7 @@
|
|||
|
||||
<div id="menu">
|
||||
<nav class="pure-menu sidebar-menu">
|
||||
<h1 class="site-logo">Admin<strong>Rdr</strong></h1>
|
||||
<h1 class="site-logo">Backend<strong>RDR</strong></h1>
|
||||
{{-- <div class="menu-item-divided"></div> --}}
|
||||
|
||||
{{-- <h2 class="pure-menu-heading">Home</h2> --}}
|
||||
|
|
Loading…
Reference in New Issue
Block a user