- bug fixes Testphase Januar 2020

This commit is contained in:
Arno Kaimbacher 2020-01-23 17:52:26 +01:00
parent d323e1d4bb
commit a773fe2a1d
29 changed files with 1238 additions and 496 deletions

View file

@ -1,7 +1,16 @@
import { Component, Vue, Watch } from 'vue-property-decorator';
import datetime from 'vuejs-datetimepicker';
import messagesEN from './strings/messages/en.js';
import VeeValidate from 'vee-validate';
Vue.use(VeeValidate);
// Vue.use(VeeValidate);
Vue.use(VeeValidate, {
// validity: true
locale: 'en',
useConstraintAttrs: true,
dictionary: {
en: { messages: messagesEN }
}
});
import LocationsMap from './components/locations-map.vue';
import Dataset from './components/Dataset';
import PersonTable from './components/PersonTable.vue';
@ -30,7 +39,7 @@ export default class EditDataset extends Vue {
// language: '',
// type: '',
// project_id: '',
// creating_corporation: 'TETHYS Repository',
// creating_corporation: 'TETHYS RDR',
// embargo_date: '',
// coverage: {
// xmin: "",
@ -67,10 +76,37 @@ export default class EditDataset extends Vue {
get remainingTitleTypes() {
// this.titleTypes.filter(e => e != 'Main');
var filtered = Object.fromEntries(Object.entries(this.titleTypes).filter(([k,v]) => v != 'Main'));
var filtered = Object.fromEntries(Object.entries(this.titleTypes).filter(([k, v]) => v != 'Main'));
return filtered;
}
get keywords_length() {
return this.form.subjects.length;
}
get files_length() {
return this.form.files.length;
}
get isElevationAbsolut() {
return this.elevation == "absolut";
}
get isElevationRange() {
return this.elevation == "range";
}
get isDepthAbsolut() {
return this.depth == "absolut";
}
get isDepthRange() {
return this.depth == "range";
}
get isTimeAbsolut() {
return this.time == "absolut";
}
get isTimeRange() {
return this.time == "range";
}
beforeMount() {
// this.form = window.Laravel.form;
this.realMerge(this.form, window.Laravel.form);
@ -83,12 +119,12 @@ export default class EditDataset extends Vue {
this.referenceTypes = window.Laravel.referenceTypes;
this.relationTypes = window.Laravel.relationTypes;
}
created() {
// add the required rule
VeeValidate.Validator.extend('translatedLanguage', {
// add the required rule
VeeValidate.Validator.extend('translatedLanguage', {
getMessage: field => 'The translated ' + field + ' must be in a language other than than the dataset language.',
validate: (value, [mainLanguage, type]) => {
if (type == "Translated") {
@ -186,7 +222,7 @@ export default class EditDataset extends Vue {
} else {
this.time = "no_time";
}
if (this.form.coverage.elevation_absolut != null) {
this.elevation = "absolut";
} else if (this.form.coverage.elevation_min != null) {
@ -194,7 +230,7 @@ export default class EditDataset extends Vue {
} else {
this.elevation = "no_elevation";
}
if (this.form.coverage.depth_absolut != null) {
this.depth = "absolut";
} else if (this.form.coverage.depth_min != null) {
@ -204,6 +240,58 @@ export default class EditDataset extends Vue {
}
}
@Watch('elevation')
onElevationChanged(val, oldVal) {
if (val == "absolut") {
//formData.append('coverage[elevation_absolut]', this.dataset.coverage.elevation_absolut);
this.form.coverage.elevation_min = null;
this.form.coverage.elevation_max = null;
}
else if (val == "range") {
this.form.coverage.elevation_absolut = null;
} else {
this.form.coverage.elevation_min = null;
this.form.coverage.elevation_max = null;
this.form.coverage.elevation_absolut = null;
}
}
@Watch('depth')
onDepthChanged(val, oldVal) {
if (val == "absolut") {
this.form.coverage.depth_min = null;
this.form.coverage.depth_max = null;
}
else if (val == "range") {
this.form.coverage.depth_absolut = null;
} else {
this.form.coverage.depth_min = null;
this.form.coverage.depth_max = null;
this.form.coverage.depth_absolut = null;
}
}
@Watch('time')
onTimeChanged(val, oldVal) {
if (val == "absolut") {
this.form.coverage.time_min = null;
this.form.coverage.time_max = null;
this.$refs.minTimeDatepicker.clearDate();
this.$refs.maxTimeDatepicker.clearDate();
}
else if (val == "range") {
this.form.coverage.time_absolut = null;
this.$refs.absoluteTimeDatepicker.clearDate();
} else {
this.form.coverage.time_min = null;
this.form.coverage.time_max = null;
this.form.coverage.time_absolut = null;
this.$refs.minTimeDatepicker.clearDate();
this.$refs.maxTimeDatepicker.clearDate();
this.$refs.absoluteTimeDatepicker.clearDate();
}
}
onSubmit() {
// var dataform = new FormData();
// var dataform = document.getElementById('submitEditForm');
@ -230,7 +318,7 @@ export default class EditDataset extends Vue {
this.submitted = true;
this.$validator.validate().then(result => {
if (result) {
// console.log('From Submitted!');
// console.log('From Submitted!');
document.getElementById("submitEditForm").submit();
return;
}
@ -299,7 +387,7 @@ export default class EditDataset extends Vue {
//if (this.persons.includes(person) == false) {
if (this.form.authors.filter(e => e.id === person.id).length > 0) {
this.$toast.error("person is already defined as author");
} else if (this.form.contributors.filter(e => e.id === person.id).length > 0) {
} else if (this.form.contributors.filter(e => e.id === person.id).length > 0) {
this.$toast.error("person is already defined as contributor");
}
else {
@ -308,7 +396,7 @@ export default class EditDataset extends Vue {
// this.dataset.checkedAuthors.push(person.id);
this.$toast.success("person has been successfully added as author");
}
// else if (this.dataset.contributors.filter(e => e.id === person.id).length > 0) {
// this.$toast.error("person is already defined as contributor");
// }
@ -324,7 +412,17 @@ export default class EditDataset extends Vue {
*/
for (var i = 0; i < uploadedFiles.length; i++) {
let fileName = uploadedFiles[i].name.replace(/\.[^/.]+$/, '');
let uploadeFile = { file: uploadedFiles[i], label: fileName, sort_order: 0 };
console.log(uploadedFiles[i]);
var file = {
'lastModified': uploadedFiles[i].lastModified,
// 'lastModifiedDate': uploadedFiles[i].lastModifiedDate,
'name': uploadedFiles[i].name,
'size': uploadedFiles[i].size,
'type': uploadedFiles[i].type,
'webkitRelativePath': uploadedFiles[i].value,
}
console.log(file);
let uploadeFile = { file: JSON.stringify(file), label: fileName, sort_order: 0 };
//this.dataset.files.push(uploadedFiles[i]);
this.form.files.push(uploadeFile);
}
@ -337,7 +435,7 @@ export default class EditDataset extends Vue {
/*
Removes a select file the user has uploaded
*/
removeFile(key) {
removeFile(key) {
this.form.files.splice(key, 1);
}

View file

@ -8,7 +8,7 @@ function initialState() {
rights: null,
project_id: "",
creating_corporation: "GBA Repository",
creating_corporation: "TETHYS RDR",
language: "",
embargo_date: "",
belongs_to_bibliography: 0,
@ -70,7 +70,7 @@ export default class Dataset extends Vue {
rights = null;
project_id = "";
creating_corporation = "TETHYS Repository";
creating_corporation = "TETHYS RDR";
language = "";
embargo_date = "";
belongs_to_bibliography = 0;

View file

@ -14,7 +14,7 @@
v-model="geolocation.x_min"
data-vv-scope="step-2"
id="xmin"
v-validate="'decimal'"
v-validate="'decimal|required'"
/>
</div>
@ -27,7 +27,7 @@
v-model="geolocation.y_min"
data-vv-scope="step-2"
id="ymin"
v-validate="'decimal'"
v-validate="'decimal|required'"
/>
</div>
@ -40,7 +40,7 @@
v-model="geolocation.x_max"
data-vv-scope="step-2"
id="xmax"
v-validate="'decimal'"
v-validate="'decimal|required'"
/>
</div>
@ -53,7 +53,7 @@
v-model="geolocation.y_max"
data-vv-scope="step-2"
id="ymax"
v-validate="'decimal'"
v-validate="'decimal|required'"
/>
</div>
<input type="button" v-if="validBoundingBox" v-on:click="zoomTo" value="validate coordinates" />

View file

@ -152,6 +152,9 @@ const app = new Vue({
keywords_length() {
return this.dataset.subjects.length;
},
files_length() {
return this.dataset.files.length;
},
isInitial() {
return this.currentStatus === STATUS_INITIAL;
},
@ -578,10 +581,15 @@ const app = new Vue({
}
return true;
},
submit(status) {
submit(scope) {
// alert('Submit to blah and show blah and etc.');
// save it
this.save(status);
// this.save(status);
this.$validator.validateAll(scope).then((result) => {
if (result) {
this.save("inprogress");
}
});
},
handleTimeExpire() {
window.location = '/login';

View file

@ -1,4 +1,9 @@
const messages={
min_value: (field, num) => field +' cannot be empty! ' + num + ' items are required.',
min_value: (field, num) => field
+' cannot be empty! '
+ num
+ (num==1 ? ' item' : ' items')
+ (num==1 ? ' is' : ' are')
+ ' required.',
};
export default messages;

View file

@ -13,12 +13,12 @@ return [
|
*/
'analysisdata' => 'Analysis Data',
'interpreteddata' => 'Interpreted Data',
'measurementdata' => 'Measurement Data',
'analysisdata' => 'Analysis',
'measurementdata' => 'Measurements',
'monitoring' => 'Monitoring',
'remotesensing' => 'Remote Sensing',
'gis' => 'GIS',
'models' => 'Models',
'rawdata' => 'Raw Data',
'supplementarydata' => 'Supplementary Data',
'mixedtype' => 'Mixed Type'
//'diplom' => 'Diploma Thesis',
//'doctoralthesis' => 'Doctoral Thesis',

View file

@ -69,7 +69,7 @@
</div>
</div> --}}
<div class="pure-u-1 pure-u-md-1-2 pure-div">
<label for="documentType">Datensatztyp<span class="required" title="Dieses Feld muss ausgefüllt werden."> *</span></label>
<label for="documentType">Dataset Type<span class="required" title="Dieses Feld muss ausgefüllt werden."> *</span></label>
<div class="select pure-u-23-24" title="Bitte wählen Sie einen Datensatztyp aus der Liste aus.">
{!! Form::select('Type', Lang::get('doctypes'), null, ['id' => 'type', 'placeholder' => '-- select type --', 'v-model' =>
'dataset.type', "v-validate" => "'required'", 'data-vv-scope' => 'step-1']) !!}
@ -83,7 +83,7 @@
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('TitleMain', 'Main Title ') !!}
{!! Form::text('TitleMain[Value]', null, ['class' => 'pure-u-23-24', 'v-model'
=> 'dataset.title_main.value', "v-validate" => "'required|min:4'", "data-vv-as" => "Main Title", 'data-vv-scope' => 'step-1']) !!}
=> 'dataset.title_main.value', "v-validate" => "'required|min:4|max:255'", "data-vv-as" => "Main Title", 'data-vv-scope' => 'step-1']) !!}
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('TitleLanguage', 'Title Language..') !!}
@ -110,7 +110,7 @@
<tbody>
<tr v-for="(item, index) in dataset.titles">
<td>
<input name="Title" class="form-control" placeholder="[TITLE]" v-model="item.value" data-vv-as="Additional Title" v-validate="'required|min:4'" data-vv-scope="step-1" />
<input name="Title" class="form-control" placeholder="[TITLE]" v-model="item.value" data-vv-as="Additional Title" v-validate="'required|min:4|max:255'" data-vv-scope="step-1" />
</td>
<td>
{!! Form::select('Title[Type]', $titleTypes, null,
@ -136,7 +136,7 @@
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('TitleAbstract', 'Main Abstract ') !!}
{{ Form::textarea('TitleAbstract[Value]', null, ['class' => 'pure-u-23-24',
'size' => '70x6', 'v-model' => 'dataset.abstract_main.value', "v-validate" => "'required|min:4'",
'size' => '70x6', 'v-model' => 'dataset.abstract_main.value', "v-validate" => "'required|min:4|max:2500'",
"data-vv-as" => "Main Abstract", 'data-vv-scope' => 'step-1']) }}
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
@ -164,7 +164,7 @@
<tbody>
<tr v-for="(item, index) in dataset.abstracts">
<td>
<textarea rows="3" cols="40" name="Description[Value]" class="form-control" placeholder="[DESCRIPTION]" v-model="item.value" data-vv-as="Additional Description" v-validate="'required|min:4'" data-vv-scope="step-1"></textarea>
<textarea rows="3" cols="40" name="Description[Value]" class="form-control" placeholder="[DESCRIPTION]" v-model="item.value" data-vv-as="Additional Description" v-validate="'required|min:4|max:2500'" data-vv-scope="step-1"></textarea>
</td>
<td>
{!! Form::select('Description[Type]', $descriptionTypes, null,
@ -294,7 +294,7 @@
<div v-if="step === 2 && isInitial" data-vv-scope="step-2">
<h1>Step Two: Recommended Elements</h1>
{{-- <fieldset id="fieldset-project">
<fieldset id="fieldset-project">
<legend>Project</legend>
<div class="pure-g">
@ -308,7 +308,7 @@
</div>
</div>
</fieldset> --}}
</fieldset>
<fieldset id="fieldset-dates">
<legend>Date(s)</legend>
@ -424,11 +424,11 @@
<div class="pure-u-1 pure-u-md-1">
<label for="time-option-one" class="pure-radio">
<input id="time-option-one" type="radio" v-model="time" value="absolut">
absolut time (dd.MM.yyyy HH:mm:ss)
absolut time (yyyy-MM-dd HH:mm:ss)
</label>
<label for="time-option-two" class="pure-radio">
<input id="time-option-two" type="radio" v-model="time" value="range">
time range (dd.MM.yyyy HH:mm:ss)
time range (yyyy-MM-dd HH:mm:ss)
</label>
<label for="time-option-three" class="pure-radio">
<input id="time-option-three" type="radio" v-model="time" value="no_time">
@ -441,7 +441,7 @@
{{-- {!! Form::datetime('time_absolut', null, ['class' => 'pure-u-23-24', 'placeholder' => 'dd.MM.yyyy HH:mm',
'v-model' => 'dataset.coverage.time_absolut', 'data-vv-scope' => 'step-2', 'format' => 'yyyy-MM-dd HH:mm',
"v-validate" => "this.isTimeAbsolut ? 'required|date_format:dd.MM.yyyy HH:mm:ss' : '' " ]) !!} --}}
<datetime name="time_absolut" v-validate="this.isTimeAbsolut ? 'required|date_format:dd-MM-yyyy HH:mm:ss' : '' " data-vv-scope="step-2" format="DD-MM-YYYY h:i:s" v-model='dataset.coverage.time_absolut' ></datetime>
<datetime name="time_absolut" v-validate="this.isTimeAbsolut ? 'required|date_format:yyyy-MM-dd HH:mm:ss' : '' " data-vv-scope="step-2" format="YYYY-MM-DD h:i:s" v-model='dataset.coverage.time_absolut' ></datetime>
{{-- <datetime name="time_absolut" format="MM-DD-YYYY H:i:s" width="300px" v-model="dataset.coverage.time_absolut"></datetime> --}}
</div>
<div v-show="time === 'range'" class="pure-u-1 pure-u-md-1">
@ -449,14 +449,14 @@
{{-- {!! Form::datetimelocal('time_min', null, ['class' => 'pure-u-23-24', 'placeholder' => 'dd.MM.yyyy HH:mm:ss',
'v-model' => 'dataset.coverage.time_min', 'data-vv-scope' => 'step-2', 'step' => 1,
"v-validate" => "this.isTimeRange ? 'required|date_format:dd.MM.yyyy HH:mm:ss' : '' "]) !!} --}}
<datetime name="time_min" v-validate="this.isTimeRange ? 'required|date_format:dd-MM-yyyy HH:mm:ss' : '' " data-vv-scope="step-2" format="DD-MM-YYYY h:i:s" v-model='dataset.coverage.time_min' ></datetime>
<datetime name="time_min" v-validate="this.isTimeRange ? 'required|date_format:dd-MM-yyyy HH:mm:ss' : '' " data-vv-scope="step-2" format="YYYY-MM-DD h:i:s" v-model='dataset.coverage.time_min' ></datetime>
</div>
<div v-show="time === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('timemax', 'time max: ') !!}
{{-- {!! Form::datetimelocal('time_max', null, ['class' => 'pure-u-23-24', 'placeholder' => 'dd.MM.yyyy HH:mm:ss',
'v-model' => 'dataset.coverage.time_max', 'data-vv-scope' => 'step-2', 'step' => 1,
"v-validate" => "this.isTimeRange ? 'required|date_format:dd.MM.yyyy HH:mm:ss' : '' "]) !!} --}}
<datetime name="time_max" v-validate="this.isTimeRange ? 'required|date_format:dd-MM-yyyy HH:mm:ss' : '' " data-vv-scope="step-2" format="DD-MM-YYYY h:i:s" v-model='dataset.coverage.time_max' ></datetime>
<datetime name="time_max" v-validate="this.isTimeRange ? 'required|date_format:dd-MM-yyyy HH:mm:ss' : '' " data-vv-scope="step-2" format="YYYY-MM-DD h:i:s" v-model='dataset.coverage.time_max' ></datetime>
</div>
</div>
@ -607,6 +607,7 @@
<h1>File Upload</h1>
<div class="dropbox">
<input type="hidden" v-validate:files_length="'min_value:1'" data-vv-scope="step-4" data-vv-as="files list" name="files_list">
<input type="file" multiple name="files" v-bind:disabled="isSaving" @change="filesChange($event.target.name, $event.target.files)"
class="input-file" data-vv-scope="step-4">
<p v-if="isInitial">
@ -648,10 +649,16 @@
<i class="fa fa-arrow-left"></i>
<span>Zurück</span>
</button>
<button @click.prevent="submit('inprogress')" class="pure-button button-small">
<button @click.prevent="submit('step-4')" class="pure-button button-small" v-bind:disabled="errors.any()">
<i class="fa fa-save"></i>
<span>Save Dataset</span>
</button>
<div v-if="errors.items.length > 0">
<b>Please correct the following error(s):</b>
<ul class="alert validation-summary-errors">
<li style="margin-left:5px;" v-for="error in errors.items">@{{ error.msg }}</li>
</ul>
</div>
{{-- <button @click.prevent="submit('unpublished')" class="pure-button button-small">
<i class="fa fa-upload"></i>
<span>Release Dataset</span>

View file

@ -1,3 +1,23 @@
<fieldset id="fieldset-State">
<legend>State & notes</legend>
<div class="pure-g">
@if($dataset->reject_reviewer_note)
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('reject_reviewer_note', 'reviewer reject note..') !!}
{{-- {!! Form::select('server_state', Config::get('enums.server_states'), null, ['id' => 'server_state', 'placeholder' => '-- select server state --']) !!} --}}
{!! Form::textarea('reject_reviewer_note', null, ['class'=>'pure-u-23-24','readonly', 'v-model' =>
'form.reject_reviewer_note']) !!}
</div>
@endif
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('server_state', 'Status..') !!}
{{-- {!! Form::select('server_state', Config::get('enums.server_states'), null, ['id' => 'server_state', 'placeholder' => '-- select server state --']) !!} --}}
{!! Form::text('server_state', null, ['class'=>'pure-u-23-24','readonly', 'v-model' => 'form.server_state'])
!!}
</div>
</div>
</fieldset>
<fieldset id="fieldset-General">
<legend>General</legend>
<div class="pure-g">
@ -5,8 +25,8 @@
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('Language', 'Language..') !!}
<div class="select pure-u-23-24">
{!! Form::select('Language', $languages, null, ['placeholder' => '[language]', 'v-model' =>
'dataset.language', "v-validate" => "'required'"]) !!}
{!! Form::select('language', $languages, null, ['placeholder' => '[language]', 'v-model' =>
'form.language', "data-vv-as" => "Language", "v-validate" => "'required'"]) !!}
</div>
<small id="languageHelp" class="pure-form-message-inline">select dataset main language</small>
</div>
@ -15,172 +35,392 @@
{!! Form::label('type', 'Type..') !!}
<div class="select pure-u-23-24">
{!! Form::select('type', Lang::get('doctypes'), null, ['id' => 'type', 'placeholder' => '-- select type
--']) !!}
--',
'v-model' => 'form.type', "v-validate" => "'required'"]) !!}
</div>
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('project_id', 'Project..') !!}
<div class="select pure-u-23-24">
{!! Form::select('project_id', $projects, null, ['id' => 'project_id', 'placeholder' => '--no
project--']) !!}
{{-- {!! Form::select('project_id', $projects, null, ['id' => 'project_id', 'placeholder' => '--no
project--', 'v-model' => 'form.project_id']) !!} --}}
<select name="project_id" v-model="form.project_id">
<option :value="null" selected hidden disabled>--no project--</option>
<option v-for="(item, key) in projects" :value="key">@{{item}}</option>
</select>
</div>
<small id="projectHelp" class="pure-form-message-inline">project is optional</small>
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('server_state', 'Status..') !!}
{{-- {!! Form::select('server_state', Config::get('enums.server_states'), null, ['id' => 'server_state', 'placeholder' => '-- select server state --']) !!} --}}
{!! Form::text('server_state', null, ['class'=>'pure-u-23-24','readonly']) !!}
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('reject_reviewer_note', 'reviewer reject note..') !!}
{{-- {!! Form::select('server_state', Config::get('enums.server_states'), null, ['id' => 'server_state', 'placeholder' => '-- select server state --']) !!} --}}
{!! Form::textarea('reject_reviewer_note', null, ['class'=>'pure-u-23-24','readonly']) !!}
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('embargo_date', 'Embargo Date') !!}
{!! Form::date('embargo_date', null, ['placeholder' => date('y-m-d'), 'class' => 'pure-u-23-24']) !!}
<small id="projectHelp" class="pure-form-message-inline">embargo_date is optional</small>
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('creating_corporation', 'Creating Corporation') !!}
{!! Form::text('creating_corporation', null, ['class' =>
'pure-u-23-24', 'v-model' => 'dataset.creating_corporation', "v-validate" => "'required'", 'data-vv-scope'
=> 'step-1']) !!}
{!! Form::text('creating_corporation', null, ['readonly', 'class' =>
'pure-u-23-24', 'v-model' => 'form.creating_corporation', "v-validate" => "'required'"]) !!}
<span class="md-error" v-if="errors.has('form.creating_corporation')">creating corporation is
required.</span>
</div>
</div>
</fieldset>
<fieldset id="fieldset-geolocation">
<legend>Coverage: Geolocation, Elevation, Depth, Time</legend>
<fieldset id="fieldset-creator">
<legend>Creator(s)</legend>
<div class="pure-g">
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('xmin', 'xmin: ') !!}
{!! Form::text('coverage[xmin]', null, ['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.xmin']) !!}
<my-autocomplete title="searching active person table" v-on:person="onAddAuthor"></my-autocomplete>
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('ymin', 'ymin: ') !!}
{!! Form::text('coverage[ymin]', null, ['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.ymin']) !!}
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('xmax', 'xmax: ') !!}
{!! Form::text('coverage[xmax]', null, ['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.xmax']) !!}
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('ymax', 'ymax: ') !!}
{!! Form::text('coverage[ymax]', null, ['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.ymax']) !!}
</div>
@if (isset($dataset->elevation_absolut))
<div v-show="elevation === 'absolut'" class="pure-u-1 pure-u-md-1">
{!! Form::label('elevation_absolut', 'elevation absolut: ') !!}
{!! Form::text('coverage[elevation_absolut]', null,
['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.elevation_absolut', 'data-vv-scope' => 'step-2',
"v-validate" => "this.isElevationAbsolut ? 'required|integer' : '' " ]) !!}
</div>
@elseif (isset($dataset->elevation_min) && isset($dataset->elevation_max))
<div v-show="elevation === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('elevation_min', 'elevation min: ') !!}
{!! Form::text('coverage[elevation_min]', null,
['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.elevation_min', 'data-vv-scope' => 'step-2',
"v-validate" => "this.isElevationRange ? 'required|integer' : '' "]) !!}
</div>
<div v-show="elevation === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('elevation_max', 'elevation max: ') !!}
{!! Form::text('coverage[elevation_max]', null,
['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.elevation_max', 'data-vv-scope' => 'step-2',
"v-validate" => "this.isElevationRange ? 'required|integer' : '' "]) !!}
</div>
@endif
@if (isset($dataset->depth_absolut))
<div v-show="elevation === 'absolut'" class="pure-u-1 pure-u-md-1">
{!! Form::label('depth_absolut', 'depth absolut: ') !!}
{!! Form::text('coverage[depth_absolut]', null,
['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.depth_absolut', 'data-vv-scope' => 'step-2',
"v-validate" => "this.isElevationAbsolut ? 'required|integer' : '' " ]) !!}
</div>
@elseif (isset($dataset->elevation_min) && isset($dataset->elevation_max))
<div v-show="elevation === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('depth_min', 'depth min: ') !!}
{!! Form::text('coverage[depth_min]', null,
['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.depth_min', 'data-vv-scope' => 'step-2',
"v-validate" => "this.isElevationRange ? 'required|integer' : '' "]) !!}
</div>
<div v-show="elevation === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('depth_max', 'depth max: ') !!}
{!! Form::text('coverage[depth_max]', null,
['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.depth_max', 'data-vv-scope' => 'step-2',
"v-validate" => "this.isElevationRange ? 'required|integer' : '' "]) !!}
</div>
@endif
@if (isset($dataset->depth_absolut))
<div v-show="elevation === 'absolut'" class="pure-u-1 pure-u-md-1">
{!! Form::label('time_absolut', 'time absolut: ') !!}
{!! Form::text('coverage[time_absolut]', null,
['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.time_absolut', 'data-vv-scope' => 'step-2',
"v-validate" => "this.isElevationAbsolut ? 'required|integer' : '' " ]) !!}
</div>
@elseif (isset($dataset->elevation_min) && isset($dataset->elevation_max))
<div v-show="elevation === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('time_min', 'time min: ') !!}
{!! Form::text('coverage[time_min]', null,
['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.time_min', 'data-vv-scope' => 'step-2',
"v-validate" => "this.isElevationRange ? 'required|integer' : '' "]) !!}
</div>
<div v-show="elevation === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('time_max', 'time max: ') !!}
{!! Form::text('coverage[time_max]', null,
['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.time_max', 'data-vv-scope' => 'step-2',
"v-validate" => "this.isElevationRange ? 'required|integer' : '' "]) !!}
</div>
@endif,
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{{-- {!! 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="authors" v-model="form.authors" type="hidden" class="form-check-input" v-validate="'required'"
data-vv-as="Author">
<person-table name="authors" v-bind:heading="'authors'" v-bind:personlist="form.authors"></person-table>
<person-table name="contributors" v-bind:heading="'contributors'" v-bind:personlist="form.contributors">
</person-table>
</fieldset>
<fieldset id="fieldset-titles">
<legend>Title</legend>
<div class="pure-g">
<div>
@foreach($dataset->titles as $key => $title)
{{-- @foreach($dataset->titles as $key => $title)
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{{ Form::label('title', 'Title ' .($key+1).':') }}
<!-- Notice this is an array now: -->
{{ Form::text('titles['.$title->id.'][value]', $title->value, ['class' => 'pure-u-23-24']) }}
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{{ Form::label('language', 'Language..') }}
{{ Form::text('titles['.$title->id.'][language]', $title->language, ['placeholder' => '--no language--', 'class' => 'pure-u-23-24', 'readonly']) }}
</div>
@endforeach
{{ Form::text('titles['.$title->id.'][value]', $title->value, ['class' => 'pure-u-23-24']) }}
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{{ Form::label('language', 'Language..') }}
{{ Form::text('titles['.$title->id.'][language]', $title->language, ['placeholder' => '--no language--', 'class' => 'pure-u-23-24', 'readonly']) }}
</div>
@endforeach --}}
<div class="pure-u-1 pure-u-md-1-2 pure-div">
<label name="TitleMain">Add additional title(s) </label>
<button class="pure-button button-small" @click.prevent="addTitle()"><i class="fas fa-plus-circle"></i></button>
</div>
<table v-if="form.titles.length" class="pure-table pure-table-horizontal">
<thead>
<tr>
<th style="width: 20px;">Title</th>
<th>Type</th>
<th>Language</th>
<th style="width: 130px;"></th>
</tr>
</thead>
<tbody>
<tr v-for="(title, index) in form.titles">
<td>
<input v-bind:name="'titles['+index+'][id]'" readonly class="form-control" v-model="title.id" hidden />
<input type="text" :id="'titles['+index+'][value]'" :name="'titles['+index+'][value]'"
v-validate="'required|min:4|max:255'" class="form-control" v-model="title.value">
</td>
<td>
<template v-if="title.type == 'Main'">
<input v-bind:name="'titles['+index+'][type]'" v-model="title.type" class="form-control"
v-validate="'required'" v-bind:readonly="title.type == 'Main'">
</template>
<template v-else>
<select type="text" :id="'titles['+index+'][type]'" :name="'titles['+index+'][type]'"
class="form-control"
v-validate="{required: true}"
v-model="title.type" v-bind:readonly="title.type == 'Main'">
<option v-for="option in remainingTitleTypes" :value='option'
:disabled="title.type == 'Main'">
@{{ option }}
</option>
</select>
</template>
</td>
<td>
<template v-if="title.type == 'Main'">
<input v-bind:name="'titles['+index+'][language]'" v-model="title.language"
class="form-control" v-validate="'required'" v-bind:readonly="title.type == 'Main'">
</template>
<template v-else>
<select type="text" :id="'titles['+index+'][language]'"
:name="'titles['+index+'][language]'" class="form-control"
v-validate="{required: true, translatedLanguage: [form.language, title.type]}"
v-model="title.language" v-bind:readonly="title.type == 'Main'">
<option v-for="option in languages" :value='option'>
@{{ option }}
</option>
</select>
</template>
</td>
<td>
<button v-if="title.id == undefined" class="pure-button button-small is-warning"
@click.prevent="removeTitle(index)">
<i class="fa fa-trash"></i>
</td>
</tr>
</tbody>
</table>
</div>
</fieldset>
<fieldset id="fieldset-abstracts">
<legend>Abstract</legend>
<div class="pure-g">
<div>
@foreach($dataset->abstracts as $key => $abstract)
{{-- @foreach($dataset->abstracts as $key => $abstract)
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{{ Form::label('abstract', 'Abstract ' .($key+1).':') }}
<!-- Notice this is an array now: -->
{{ Form::textarea('abstracts['.$abstract->id.'][value]', $abstract->value, ['class' => 'pure-u-23-24', 'size' => '70x6']) }}
<!-- Notice this is an array now: -->
{{ Form::textarea('abstracts['.$abstract->id.'][value]', $abstract->value, ['class' => 'pure-u-23-24', 'size' => '70x6']) }}
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{{ Form::label('language', 'Language..') }}
{{ Form::text('abstracts['.$abstract->id.'][language]', $abstract->language, ['placeholder' => '--no language--', 'class' => 'pure-u-23-24', 'readonly']) }}
</div>
@endforeach --}}
<div class="pure-u-1 pure-u-md-1-2 pure-div">
<label name="DescriptionMain">Add additional abstract(s) </label>
<button class="pure-button button-small" @click.prevent="addDescription()"><i
class="fas fa-plus-circle"></i></button>
</div>
<table v-if="form.abstracts.length" class="pure-table pure-table-horizontal">
<thead>
<tr>
<th style="width: 20px;">Value</th>
<th>Type</th>
<th>Language</th>
<th style="width: 130px;"></th>
</tr>
</thead>
<tbody>
<tr v-for="(abstract, index) in form.abstracts">
<td>
<input v-bind:name="'abstracts[' + index +'][id]'" readonly class="form-control" v-model="abstract.id" hidden />
<input type="text" :id="'abstracts['+ index +'][value]'"
:name="'abstracts['+index+'][value]'" v-validate="'required|min:4|max:2500'" v-model="abstract.value"
class="form-control">
</td>
<td>
<template v-if="abstract.type == 'Abstract'">
<input v-bind:name="'abstracts['+ index +'][type]'" v-model="abstract.type"
class="form-control" v-validate="'required'" v-bind:readonly="abstract.type == 'Abstract'">
</template>
<template v-else>
<select type="text" :id="'abstracts['+ index +'][type]'"
:name="'abstracts['+ index +'][type]'" class="form-control"
v-validate="{required: true}"
v-model="abstract.type" v-bind:readonly="abstract.type == 'Abstract'">
<option v-for="option in descriptionTypes" :value='option'>
@{{ option }}
</option>
</select>
</template>
</td>
<td>
<template v-if="abstract.type == 'Abstract'">
<input v-bind:name="'abstracts['+index+'][language]'" v-model="abstract.language"
class="form-control" v-validate="'required'" v-bind:readonly="abstract.type == 'Abstract'">
</template>
<template v-else>
<select type="text" :id="'abstracts['+index+'][language]'"
:name="'abstracts['+index+'][language]'" class="form-control"
v-validate="{required: true, translatedLanguage: [form.language, abstract.type]}"
v-model="abstract.language" v-bind:readonly="abstract.type == 'Abstract'">
<option v-for="option in languages" :value='option'>
@{{ option }}
</option>
</select>
</template>
</td>
<td>
<button v-if="abstract.id == undefined" class="pure-button button-small is-warning"
@click.prevent="removeDescription(index)">
<i class="fa fa-trash"></i>
</td>
</tr>
</tbody>
</table>
</div>
</fieldset>
<fieldset id="fieldset-dates">
<legend>Date(s)</legend>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('embargo_date', 'Embargo Date') !!}
{!! Form::date('embargo_date', null, ['placeholder' => date('y-m-d'), 'class'
=> 'pure-u-23-24', 'v-model' => 'form.embargo_date']) !!}
<small id="projectHelp" class="pure-form-message-inline">EmbargoDate is optional</small>
</div>
</fieldset>
<fieldset id="fieldset-geolocation">
<legend>Geo Location</legend>
<div class="pure-g">
<div class="pure-u-1 pure-u-md-1 pure-u-lg-1 pure-div">
<locations-map v-bind:geolocation="form.coverage"></locations-map>
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{{ Form::label('language', 'Language..') }}
{{ Form::text('abstracts['.$abstract->id.'][language]', $abstract->language, ['placeholder' => '--no language--', 'class' => 'pure-u-23-24', 'readonly']) }}
</div>
</fieldset>
<fieldset id="fieldset-coverage">
<legend>Coverage</legend>
<div class="pure-g">
<div class="pure-u-1 pure-u-md-1-2">
<div class="pure-u-1 pure-u-md-1">
<label for="elevation-option-one" class="pure-radio">
<input id="elevation-option-one" type="radio" v-model="elevation" value="absolut">
absolut elevation (m)
</label>
<label for="elevation-option-two" class="pure-radio">
<input id="elevation-option-two" type="radio" v-model="elevation" value="range">
elevation range (m)
</label>
<label for="elevation-option-three" class="pure-radio">
<input id="elevation-option-three" type="radio" v-model="elevation" value="no_elevation">
no elevation
</label>
</div>
<div v-show="elevation === 'absolut'" class="pure-u-1 pure-u-md-1">
{!! Form::label('elevation_absolut', 'elevation absolut: ') !!}
{{-- {!! Form::text('elevation_absolut', null,
['class' => 'pure-u-23-24', 'v-model' => 'form.coverage.elevation_absolut',
"v-validate" => "this.isElevationAbsolut ? 'required|integer' : '' " ]) !!} --}}
<input
name="coverage[elevation_absolut]"
type="text"
class="pure-u-23-24"
v-model="form.coverage.elevation_absolut"
id="elevation_absolut"
v-validate.immediate="{ required: isElevationAbsolut, integer: true}"
/>
</div>
<div v-show="elevation === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('elevation_min', 'elevation min: ') !!}
{{-- {!! Form::text('elevation_min', null,
['class' => 'pure-u-23-24', 'v-model' => 'form.coverage.elevation_min',
"v-validate" => "this.isElevationRange ? 'required|integer' : '' "]) !!} --}}
<input
name="coverage[elevation_min]"
type="text"
class="pure-u-23-24"
v-model="form.coverage.elevation_min"
id="elevation_min"
v-validate.immediate="{ required: this.isElevationRange, integer: true}"
/>
</div>
<div v-show="elevation === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('elevation_max', 'elevation max: ') !!}
{{-- {!! Form::text('elevation_max', null,
['class' => 'pure-u-23-24', 'v-model' => 'form.coverage.elevation_max',
"v-validate" => "this.isElevationRange ? 'required|integer' : '' "]) !!} --}}
<input
name="coverage[elevation_max]"
type="text"
class="pure-u-23-24"
v-model="form.coverage.elevation_max"
id="elevation_max"
v-validate.immediate="{ required: this.isElevationRange, integer: true}"
/>
</div>
</div>
<div class="pure-u-1 pure-u-md-1-2">
<div class="pure-u-1 pure-u-md-1">
<label for="depth-option-one" class="pure-radio">
<input id="depth-option-one" type="radio" v-model="depth" value="absolut">
absolut depth (m)
</label>
<label for="depth-option-two" class="pure-radio">
<input id="depth-option-two" type="radio" v-model="depth" value="range">
depth range (m)
</label>
<label for="depth-option-three" class="pure-radio">
<input id="depth-option-three" type="radio" v-model="depth" value="no_depth">
no depth
</label>
</div>
<div v-show="depth === 'absolut'" class="pure-u-1 pure-u-md-1">
{!! Form::label('depth_absolut', 'depth absolut: ') !!}
<input
name="coverage[depth_absolut]"
type="text"
class="pure-u-23-24"
v-model="form.coverage.depth_absolut"
id="depth_absolut"
v-validate.immediate="{ required: this.isDepthAbsolut, integer: true}"
/>
</div>
<div v-show="depth === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('depth_min', 'depth min: ') !!}
<input
name="coverage[depth_min]"
type="text"
class="pure-u-23-24"
v-model="form.coverage.depth_min"
id="depth_min"
v-validate.immediate="{ required: this.isDepthRange, integer: true}"
/>
</div>
<div v-show="depth === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('depth_max', 'depth max: ') !!}
<input
name="coverage[depth_max]"
type="text"
class="pure-u-23-24"
v-model="form.coverage.depth_max"
id="depth_max"
v-validate.immediate="{ required: this.isDepthRange, integer: true}"
/>
</div>
</div>
<div class="pure-u-1 pure-u-md-1-2">
<div class="pure-u-1 pure-u-md-1">
<label for="time-option-one" class="pure-radio">
<input id="time-option-one" type="radio" v-model="time" value="absolut">
absolut time (yyyy-MM-dd HH:mm:ss)
</label>
<label for="time-option-two" class="pure-radio">
<input id="time-option-two" type="radio" v-model="time" value="range">
time range (yyyy-MM-dd HH:mm:ss)
</label>
<label for="time-option-three" class="pure-radio">
<input id="time-option-three" type="radio" v-model="time" value="no_time">
no time
</label>
</div>
<div v-show="time === 'absolut'" class="pure-u-1 pure-u-md-1">
{!! Form::label('time_absolut', 'time absolut: ') !!}
{{-- {!! Form::datetime('time_absolut', null, ['class' => 'pure-u-23-24', 'placeholder' => 'dd.MM.yyyy HH:mm',
'v-model' => 'dataset.coverage.time_absolut', 'data-vv-scope' => 'step-2', 'format' => 'yyyy-MM-dd HH:mm',
"v-validate" => "this.isTimeAbsolut ? 'required|date_format:dd.MM.yyyy HH:mm:ss' : '' " ]) !!} --}}
<datetime ref="absoluteTimeDatepicker" name="coverage[time_absolut]"
v-validate.immediate="this.isTimeAbsolut ? 'required' : '' "
format="YYYY-MM-DD h:i:s" v-model='form.coverage.time_absolut'></datetime>
{{-- <datetime name="time_absolut" format="MM-DD-YYYY H:i:s" width="300px" v-model="dataset.coverage.time_absolut"></datetime> --}}
</div>
<div v-show="time === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('time_min', 'time min: ') !!}
{{-- {!! Form::datetimelocal('time_min', null, ['class' => 'pure-u-23-24', 'placeholder' => 'dd.MM.yyyy HH:mm:ss',
'v-model' => 'dataset.coverage.time_min', 'data-vv-scope' => 'step-2', 'step' => 1,
"v-validate" => "this.isTimeRange ? 'required|date_format:dd.MM.yyyy HH:mm:ss' : '' "]) !!} --}}
<datetime ref="minTimeDatepicker" name="coverage[time_min]"
v-validate.immediate="this.isTimeRange ? 'required' : '' "
format="YYYY-MM-DD h:i:s" v-model='form.coverage.time_min'></datetime>
</div>
<div v-show="time === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('timemax', 'time max: ') !!}
{{-- {!! Form::datetimelocal('time_max', null, ['class' => 'pure-u-23-24', 'placeholder' => 'dd.MM.yyyy HH:mm:ss',
'v-model' => 'dataset.coverage.time_max', 'data-vv-scope' => 'step-2', 'step' => 1,
"v-validate" => "this.isTimeRange ? 'required|date_format:dd.MM.yyyy HH:mm:ss' : '' "]) !!} --}}
<datetime ref="maxTimeDatepicker" name="coverage[time_max]"
v-validate.immediate="this.isTimeRange ? 'required' : '' "
format="YYYY-MM-DD h:i:s" v-model='form.coverage.time_max'></datetime>
</div>
</div>
@endforeach
</div>
</fieldset>
@ -188,32 +428,45 @@
<fieldset id="fieldset-licenses">
<legend>Licenses</legend>
{{-- <div class="form-group">
{!! Form::label('licenses[]', 'Licenses..') !!}
{!! Form::select('licenses[]', $options, array_pluck($dataset->licenses, 'id'), ['multiple' ]) !!}
</div> --}}
<div class="pure-control-group checkboxlist">
@foreach ($options as $license)
<label for={{"license". $license->id }} class="pure-checkbox">
<input name="licenses[]" value={{ $license->id }}
{{ (in_array($license->id, $checkeds)) ? 'checked=checked' : '' }} type="checkbox"
class="form-check-input">
{{ $license->name_long }}
{{-- @foreach ($licenses as $license)
<label for={{ "license". $license->id }} class="pure-checkbox">
@if ($loop->first)
<input name="licenses" value={{ $license->id }} v-model="form.checkedLicenses"
{{ (in_array($license->id, $checkeds)) ? 'checked=checked' : '' }} type="radio" class="form-check-input"
v-validate="'required'" data-vv-as="Licence">
<a href="{{ $license->link_licence }}" target="_blank">{{ $license->name_long }}</a>
@else
<input name="licenses" value={{ $license->id }} v-model="form.checkedLicenses"
{{ (in_array($license->id, $checkeds)) ? 'checked=checked' : '' }} type="radio" class="form-check-input">
<a href="{{ $license->link_licence }}" target="_blank">{{ $license->name_long }}</a>
@endif
</label>
@endforeach --}}
<br>
{{-- <span>Checked license: @{{ dataset.checkedLicenses }}</span> --}}
<template v-for="(license, index) in licenses">
<label :for="'license'+license.id" class="pure-checkbox">
<input name="licenses" :value="license.id" v-model="checkeds" type="radio" class="form-check-input"
v-validate="'required'">
<a :href="license.link_licence" target="_blank">@{{ license.name_long }}</a>
</label>
</template>
{{-- <span>old checkeds: @{{ checkeds }}</span> --}}
<!--{!! Form::checkbox('licenses[]', $license->id, in_array($license->id, $checkeds) ? true : false) !!}
{!! Form::label('license' . $license->id, $license->name_long) !!}-->
@endforeach
</div>
</fieldset>
<fieldset id="fieldset-references">
<legend>Dataset References</legend>
<label name="ReferenceLabel">Add Reference </label>
<button class="pure-button button-small" @click.prevent="addReference()"><i class="fas fa-plus-circle"></i></button>
{{-- <table class="table table-hover" v-if="dataset.keywords.length"> --}}
@if ($dataset->references->count() > 0)
<table id="references" class="pure-table pure-table-horizontal">
{{-- @if ($dataset->references->count() > 0) --}}
<table v-show="form.references.length" id="references" class="pure-table pure-table-horizontal">
<thead>
<tr>
<th style="width: 20px;">Reference value</th>
@ -224,40 +477,62 @@
</tr>
</thead>
<tbody>
{{-- <tr v-for="(item, index) in dataset.keywords"> --}}
@foreach($dataset->references as $key => $reference)
<tr>
<td>
{{ Form::text('references['.$reference->id.'][value]', $reference->value, ['class' => 'form-control', 'placeholder' => '[REFERENCE VALUE]']) }}
</td>
<td>
{{ Form::text('references['.$reference->id.'][label]', $reference->label, ['class' => 'form-control', 'placeholder' => '[REFERENCE LABEL]']) }}
</td>
<td>
{!! Form::select('references['.$reference->id.'][type]', $referenceTypes, $reference->type,
['placeholder' => '[reference type]', 'v-model' =>
'item.type', "v-validate" => "'required'", 'data-vv-scope' => 'step-2']) !!}
</td>
<td>
{!! Form::select('references['.$reference->id.'][relation]', $relationTypes, $reference->relation,
['placeholder' => '[relation type]', 'v-model' =>
'item.relation', "v-validate" => "'required'", 'data-vv-scope' => 'step-2']) !!}
</td>
<td>
{{-- @foreach($dataset->references as $key => $reference) --}}
<tr v-for="(item, index) in form.references">
<td>
<input v-bind:name="'references[' + index +'][id]'" readonly class="form-control" v-model="item.id" hidden />
<input v-bind:name="'references[' + index +'][value]'" class="form-control"
placeholder="[REFERENCE VALUE]" v-model="item.value" v-validate="'required'" />
</td>
<td>
{{-- {{ Form::text('references['.$reference->id.'][label]', $reference->label, ['class' => 'form-control', 'placeholder' => '[REFERENCE LABEL]']) }}
--}}
<input v-bind:name="'references[' + index +'][label]'" class="form-control"
placeholder="[REFERENCE LABEL]" v-model="item.label" v-validate="'required'" />
</td>
<td>
{{-- {!! Form::select('references['.$reference->id.'][type]', $referenceTypes, $reference->type,
['placeholder' => '[REFERENCE TYPE]', 'v-model' => 'item.type', "v-validate" => "'required'"]) !!} --}}
<select v-bind:name="'references[' + index +'][type]'" v-model="item.type" class="form-control"
v-validate="'required'">
<option v-for="option in referenceTypes" :value='option'>
@{{ option }}
</option>
</select>
{{-- <span>Selected: @{{ item.type }}</span> --}}
</td>
<td>
{{-- {!! Form::select('references['.$reference->id.'][relation]', $relationTypes, $reference->relation,
['placeholder' => '[REFERENCE TYPE]', 'v-model' => 'item.relation', "v-validate" => "'required'"]) !!} --}}
<select v-bind:name="'references[' + index +'][relation]'" v-model="item.relation"
class="form-control" v-validate="'required'">
<option v-for="option in relationTypes" :value='option'>
@{{ option }}
</option>
</select>
</td>
<td>
<button v-if="item.id == undefined" class="pure-button button-small is-warning"
@click.prevent="removeReference(index)">
<i class="fa fa-trash"></i>
</button>
</td>
</tr>
@endforeach
{{-- @endforeach --}}
</tbody>
</table>
@else
{{-- @else
<span>...there are no references</span>
@endif
@endif --}}
</fieldset>
<fieldset id="fieldset-keywords">
<legend>Dataset Keywords</legend>
{{-- <table class="table table-hover" v-if="dataset.keywords.length"> --}}
<label name="SubjectLabel">Add Keyword </label>
<input type="hidden" v-validate:keywords_length="'min_value:3'" data-vv-as="keyword list" name="keywords_list">
<button class="pure-button button-small" @click.prevent="addKeyword()"><i class="fas fa-plus-circle"></i></button>
@if ($dataset->subjects->count() > 0)
<table id="keywords" class="pure-table pure-table-horizontal">
<thead>
@ -267,24 +542,36 @@
<th style="width: 130px;"></th>
</tr>
</thead>
<tbody>
{{-- <tr v-for="(item, index) in dataset.keywords"> --}}
@foreach($dataset->subjects as $key => $keyword)
<tr>
<tbody>
<tr v-for="(item, index) in form.subjects" :key="item.id">
<td>
{{-- <input name="Keyword Value" class="form-control" placeholder="[KEYWORD VALUE]" v-model="item.value" v-validate="'required'"
data-vv-scope="step-2" /> --}}
{{ Form::text('keywords['.$keyword->id.'][value]', $keyword->value, ['class' => 'form-control', 'placeholder' => '[KEYWORD VALUE]']) }}
<input v-bind:name="'subjects[' + index +'][id]'" readonly class="form-control" v-model="item.id" hidden />
<input v-bind:name="'subjects[' + index +'][value]'" class="form-control"
placeholder="[KEYWORD VALUE]" v-model="item.value" v-validate="'required'" />
{{-- {{ Form::text('keywords['.$keyword->id.'][value]', $keyword->value, ['class' => 'form-control', 'placeholder' => '[KEYWORD VALUE]']) }}
--}}
</td>
<td>
{!! Form::select('keywords['.$keyword->id.'][type]', $keywordTypes, $keyword->type, ['placeholder'
=> '[keyword type]', 'v-model' => 'item.type', "v-validate" => "'required'", 'data-vv-scope' => 'step-2']) !!}
{{-- {!! Form::select('keywords['.$keyword->id.'][type]', $keywordTypes, $keyword->type, ['placeholder'
=> '[keyword type]', 'v-model' =>
'item.type', "v-validate" => "'required'", 'data-vv-scope' => 'step-2']) !!} --}}
{{-- <select v-bind:name="'keywords[' + item.id +'][type]'" v-model="item.type" class="form-control">
<option value="" disabled>[keyword type]</option>
@foreach($keywordTypes as $option)
<option value="{{ $option }}">{{ $option }}</option>
@endforeach
</select> --}}
<input v-bind:name="'subjects[' + index +'][type]'" readonly class="form-control"
placeholder="[KEYWORD TYPE]" v-model="item.type" v-validate="'required'" />
</td>
<td>
{{-- <button class="pure-button button-small is-warning" @click.prevent="removeKeyword(index)">Remove</button> --}}
<button v-if="item.id == undefined" class="pure-button button-small is-warning"
@click.prevent="removeKeyword(index)">
<i class="fa fa-trash"></i>
</button>
</td>
</tr>
@endforeach
</tr>
</tbody>
</table>
@else
@ -294,37 +581,76 @@
<fieldset id="fieldset-files">
<legend>Files</legend>
{{-- <h3>File Upload</h3>--}}
{{-- <div class="dropbox"> --}}
<div>
<input type="hidden" v-validate:files_length="'min_value:1'" data-vv-scope="step-4" data-vv-as="files list" name="files_list">
{{-- <input type="file" name="uploads[]" multiple @change="filesChange($event.target.name, $event.target.files)" class="input-file">
<p>
Drag your file(s) here to begin<br> or click to browse
</p> --}}
</div>
<table id="items" class="pure-table pure-table-horizontal">
<thead>
<tr>
<th>#</th>
<th>Path Name</th>
<th>ID</th>
<th>Label</th>
{{-- <th>New</th> --}}
<th style="width: 130px;"></th>
</tr>
</thead>
<tbody>
@foreach($dataset->files as $key => $file)
<tr>
<tbody>
<tr v-for="(file, index) in form.files" :key="file.id">
<td>
@if($file->exists() === true)
@{{ index +1 }}
</td>
<td>
{{-- @if($file->exists() === true)
<a href="{{ route('settings.file.download', ['id' => $file->id]) }}"> {{ $file->path_name }} </a>
@else
<span class="alert">missing file: {{ $file->path_name }}</span>
@endif
@endif --}}
<a v-if="file.id != undefined" v-bind:href=" '/publish/workflow/editor/file/download/' + file.id ">
@{{ file.path_name }}
</a>
<span v-else> File name will be generated</span>
</td>
<td>
{{-- {{ $file->label }} --}}
{{ Form::text('files['.$file->id.'][label]', $file->label, ['class' => 'form-control', 'placeholder' => '[FILE LABEL]']) }}
<input v-bind:name="'files[' + index +'][id]'" readonly class="form-control" v-model="file.id" />
</td>
</tr>
@endforeach
<td>
<input v-bind:name="'files['+index+'][label]'" class="form-control" placeholder="[FILE LABEL]"
v-model="file.label" v-validate="'required'" />
</td>
{{-- <td>
<i v-if="file.file" class="fas fa-file-upload"></i>
<input type="text" v-bind:name="'files['+index+'][file]'" class="form-control" v-model="file.file"/>
</td> --}}
<td>
<button v-if="file.id == undefined" class="pure-button button-small is-warning"
@click.prevent="removeFile(index)">
<i class="fa fa-trash"></i>
</td>
</tr>
</tbody>
</table>
</fieldset>
<br />
<div class="pure-controls">
<button type="submit" class="pure-button button-small">
<i class="fa fa-save"></i>
<button :disabled="errors.any()" type="submit" class="pure-button button-small">
<i class="fas fa-save"></i>
<span>{!! $submitButtonText !!}</span>
</button>
</div>
</div>

View file

@ -6,6 +6,17 @@
<span>Correct Dataset</span>
</h3>
</div>
@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some problems with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="pure-g box-content">
@ -16,13 +27,41 @@
<span>BACK</span>
</a>
</div>
<div>
<div id="app1">
{!! Form::model($dataset, ['method' => 'POST', 'route' => ['publish.workflow.editor.update', $dataset->id], 'class' => 'pure-form', 'enctype' => 'multipart/form-data' ]) !!}
@include('workflow/editor/_form', ['submitButtonText' => 'Edit Dataset', 'bookLabel' => 'Edit Dataset.'])
@include('errors._errors')
{{-- @include('errors._errors') --}}
<!-- client errors -->
<div v-if="errors.items.length > 0">
<b>Please correct the following error(s):</b>
<ul class="alert validation-summary-errors">
<li style="margin-left:5px;" v-for="error in errors.items">@{{ error.msg }}</li>
</ul>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
@stop
@section('after-scripts')
<script>
window.Laravel = <?php echo json_encode([
'csrf_token' => csrf_token(),
'form' => $dataset,
'titleTypes' => $titleTypes,
'descriptionTypes' => $descriptionTypes,
'languages' => $languages,
'projects' => $projects,
'licenses' => $licenses,
'checkeds' => $checkeds,
'referenceTypes' => $referenceTypes,
'relationTypes' => $relationTypes
]); ?>
</script>
<script type="text/javascript" src="{{ asset('backend/publish/mainEditDataset.js') }}"></script>
@stop

View file

@ -1,9 +1,9 @@
<fieldset id="fieldset-State">
<legend>State & notes</legend>
<div class="pure-g">
@if(!empty($reject_reviewer_note))
@if($dataset->reject_editor_note)
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('reject_reviewer_note', 'editor reject note..') !!}
{!! Form::label('reject_editor_note', 'editor reject note..') !!}
{{-- {!! Form::select('server_state', Config::get('enums.server_states'), null, ['id' => 'server_state', 'placeholder' => '-- select server state --']) !!} --}}
{!! Form::textarea('reject_editor_note', null, ['class'=>'pure-u-23-24','readonly', 'v-model' =>
'form.reject_editor_note']) !!}
@ -34,8 +34,7 @@
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('type', 'Type..') !!}
<div class="select pure-u-23-24">
{!! Form::select('type', Lang::get('doctypes'), null, ['id' => 'type', 'placeholder' => '-- select type
--',
{!! Form::select('type', Lang::get('doctypes'), null, ['id' => 'type', 'placeholder' => '-- select type --',
'v-model' => 'form.type', "v-validate" => "'required'"]) !!}
</div>
</div>
@ -55,7 +54,7 @@
<div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('creating_corporation', 'Creating Corporation') !!}
{!! Form::text('creating_corporation', null, ['class' =>
{!! Form::text('creating_corporation', null, ['readonly', 'class' =>
'pure-u-23-24', 'v-model' => 'form.creating_corporation', "v-validate" => "'required'"]) !!}
<span class="md-error" v-if="errors.has('form.creating_corporation')">creating corporation is
required.</span>
@ -114,7 +113,7 @@
<td>
<input v-bind:name="'titles['+index+'][id]'" readonly class="form-control" v-model="title.id" hidden />
<input type="text" :id="'titles['+index+'][value]'" :name="'titles['+index+'][value]'"
v-validate="'required'" class="form-control" v-model="title.value">
v-validate="'required|min:4|max:255'" class="form-control" v-model="title.value">
</td>
<td>
<template v-if="title.type == 'Main'">
@ -124,7 +123,7 @@
<template v-else>
<select type="text" :id="'titles['+index+'][type]'" :name="'titles['+index+'][type]'"
class="form-control"
v-validate="{required: true, translatedLanguage: [form.language, title.type]}"
v-validate="{required: true}"
v-model="title.type" v-bind:readonly="title.type == 'Main'">
<option v-for="option in remainingTitleTypes" :value='option'
:disabled="title.type == 'Main'">
@ -196,7 +195,7 @@
<input v-bind:name="'abstracts[' + index +'][id]'" readonly class="form-control" v-model="abstract.id" hidden />
<input type="text" :id="'abstracts['+ index +'][value]'"
:name="'abstracts['+index+'][value]'" v-validate="'required'" v-model="abstract.value"
:name="'abstracts['+index+'][value]'" v-validate="'required|min:4|max:2500'" v-model="abstract.value"
class="form-control">
</td>
<td>
@ -207,7 +206,7 @@
<template v-else>
<select type="text" :id="'abstracts['+ index +'][type]'"
:name="'abstracts['+ index +'][type]'" class="form-control"
v-validate="{required: true, translatedLanguage: [form.language, abstract.type]}"
v-validate="{required: true}"
v-model="abstract.type" v-bind:readonly="abstract.type == 'Abstract'">
<option v-for="option in descriptionTypes" :value='option'>
@{{ option }}
@ -283,21 +282,45 @@
</div>
<div v-show="elevation === 'absolut'" class="pure-u-1 pure-u-md-1">
{!! Form::label('elevation_absolut', 'elevation absolut: ') !!}
{!! Form::text('elevation_absolut', null,
['class' => 'pure-u-23-24', 'v-model' => 'form.coverage.elevation_absolut', 'data-vv-scope' => 'step-2',
"v-validate" => "this.isElevationAbsolut ? 'required|integer' : '' " ]) !!}
{{-- {!! Form::text('elevation_absolut', null,
['class' => 'pure-u-23-24', 'v-model' => 'form.coverage.elevation_absolut',
"v-validate" => "this.isElevationAbsolut ? 'required|integer' : '' " ]) !!} --}}
<input
name="coverage[elevation_absolut]"
type="text"
class="pure-u-23-24"
v-model="form.coverage.elevation_absolut"
id="elevation_absolut"
v-validate.immediate="{ required: isElevationAbsolut, integer: true}"
/>
</div>
<div v-show="elevation === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('elevation_min', 'elevation min: ') !!}
{!! Form::text('elevation_min', null,
['class' => 'pure-u-23-24', 'v-model' => 'form.coverage.elevation_min', 'data-vv-scope' => 'step-2',
"v-validate" => "this.isElevationRange ? 'required|integer' : '' "]) !!}
{{-- {!! Form::text('elevation_min', null,
['class' => 'pure-u-23-24', 'v-model' => 'form.coverage.elevation_min',
"v-validate" => "this.isElevationRange ? 'required|integer' : '' "]) !!} --}}
<input
name="coverage[elevation_min]"
type="text"
class="pure-u-23-24"
v-model="form.coverage.elevation_min"
id="elevation_min"
v-validate.immediate="{ required: this.isElevationRange, integer: true}"
/>
</div>
<div v-show="elevation === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('elevation_max', 'elevation max: ') !!}
{!! Form::text('elevation_max', null,
['class' => 'pure-u-23-24', 'v-model' => 'form.coverage.elevation_max', 'data-vv-scope' => 'step-2',
"v-validate" => "this.isElevationRange ? 'required|integer' : '' "]) !!}
{{-- {!! Form::text('elevation_max', null,
['class' => 'pure-u-23-24', 'v-model' => 'form.coverage.elevation_max',
"v-validate" => "this.isElevationRange ? 'required|integer' : '' "]) !!} --}}
<input
name="coverage[elevation_max]"
type="text"
class="pure-u-23-24"
v-model="form.coverage.elevation_max"
id="elevation_max"
v-validate.immediate="{ required: this.isElevationRange, integer: true}"
/>
</div>
</div>
@ -318,25 +341,37 @@
</div>
<div v-show="depth === 'absolut'" class="pure-u-1 pure-u-md-1">
{!! Form::label('depth_absolut', 'depth absolut: ') !!} {!! Form::text('depth_absolut', null, ['class'
=> 'pure-u-23-24',
'v-model' => 'form.coverage.depth_absolut', 'data-vv-scope' => 'step-2', "v-validate" =>
"this.isDepthAbsolut
? 'required|integer' : '' " ]) !!}
{!! Form::label('depth_absolut', 'depth absolut: ') !!}
<input
name="coverage[depth_absolut]"
type="text"
class="pure-u-23-24"
v-model="form.coverage.depth_absolut"
id="depth_absolut"
v-validate.immediate="{ required: this.isDepthAbsolut, integer: true}"
/>
</div>
<div v-show="depth === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('depth_min', 'depth min: ') !!} {!! Form::text('depth_min', null, ['class' =>
'pure-u-23-24', 'v-model' =>
'form.coverage.depth_min', 'data-vv-scope' => 'step-2', "v-validate" => "this.isDepthRange ?
'required|integer'
: '' "]) !!}
{!! Form::label('depth_min', 'depth min: ') !!}
<input
name="coverage[depth_min]"
type="text"
class="pure-u-23-24"
v-model="form.coverage.depth_min"
id="depth_min"
v-validate.immediate="{ required: this.isDepthRange, integer: true}"
/>
</div>
<div v-show="depth === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('depth_max', 'depth max: ') !!} {!! Form::text('depth_max', null, ['class' =>
'pure-u-23-24', 'v-model' =>
'form.coverage.depth_max', 'data-vv-scope' => 'step-2', "v-validate" => "this.isDepthRange ?
'required|integer'
: '' "]) !!}
{!! Form::label('depth_max', 'depth max: ') !!}
<input
name="coverage[depth_max]"
type="text"
class="pure-u-23-24"
v-model="form.coverage.depth_max"
id="depth_max"
v-validate.immediate="{ required: this.isDepthRange, integer: true}"
/>
</div>
</div>
@ -344,11 +379,11 @@
<div class="pure-u-1 pure-u-md-1">
<label for="time-option-one" class="pure-radio">
<input id="time-option-one" type="radio" v-model="time" value="absolut">
absolut time (dd.MM.yyyy HH:mm:ss)
absolut time (yyyy-MM-dd HH:mm:ss)
</label>
<label for="time-option-two" class="pure-radio">
<input id="time-option-two" type="radio" v-model="time" value="range">
time range (dd.MM.yyyy HH:mm:ss)
time range (yyyy-MM-dd HH:mm:ss)
</label>
<label for="time-option-three" class="pure-radio">
<input id="time-option-three" type="radio" v-model="time" value="no_time">
@ -361,9 +396,9 @@
{{-- {!! Form::datetime('time_absolut', null, ['class' => 'pure-u-23-24', 'placeholder' => 'dd.MM.yyyy HH:mm',
'v-model' => 'dataset.coverage.time_absolut', 'data-vv-scope' => 'step-2', 'format' => 'yyyy-MM-dd HH:mm',
"v-validate" => "this.isTimeAbsolut ? 'required|date_format:dd.MM.yyyy HH:mm:ss' : '' " ]) !!} --}}
<datetime name="time_absolut"
v-validate="this.isTimeAbsolut ? 'required|date_format:dd-MM-yyyy HH:mm:ss' : '' "
data-vv-scope="step-2" format="YYYY-MM-DD h:i:s" v-model='form.coverage.time_absolut'></datetime>
<datetime ref="absoluteTimeDatepicker" name="coverage[time_absolut]"
v-validate.immediate="this.isTimeAbsolut ? 'required' : '' "
format="YYYY-MM-DD h:i:s" v-model='form.coverage.time_absolut'></datetime>
{{-- <datetime name="time_absolut" format="MM-DD-YYYY H:i:s" width="300px" v-model="dataset.coverage.time_absolut"></datetime> --}}
</div>
<div v-show="time === 'range'" class="pure-u-1 pure-u-md-1">
@ -371,18 +406,18 @@
{{-- {!! Form::datetimelocal('time_min', null, ['class' => 'pure-u-23-24', 'placeholder' => 'dd.MM.yyyy HH:mm:ss',
'v-model' => 'dataset.coverage.time_min', 'data-vv-scope' => 'step-2', 'step' => 1,
"v-validate" => "this.isTimeRange ? 'required|date_format:dd.MM.yyyy HH:mm:ss' : '' "]) !!} --}}
<datetime name="time_min"
v-validate="this.isTimeRange ? 'required|date_format:dd-MM-yyyy HH:mm:ss' : '' "
data-vv-scope="step-2" format="DD-MM-YYYY h:i:s" v-model='form.coverage.time_min'></datetime>
<datetime ref="minTimeDatepicker" name="coverage[time_min]"
v-validate.immediate="this.isTimeRange ? 'required' : '' "
format="YYYY-MM-DD h:i:s" v-model='form.coverage.time_min'></datetime>
</div>
<div v-show="time === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('timemax', 'time max: ') !!}
{{-- {!! Form::datetimelocal('time_max', null, ['class' => 'pure-u-23-24', 'placeholder' => 'dd.MM.yyyy HH:mm:ss',
'v-model' => 'dataset.coverage.time_max', 'data-vv-scope' => 'step-2', 'step' => 1,
"v-validate" => "this.isTimeRange ? 'required|date_format:dd.MM.yyyy HH:mm:ss' : '' "]) !!} --}}
<datetime name="time_max"
v-validate="this.isTimeRange ? 'required|date_format:dd-MM-yyyy HH:mm:ss' : '' "
data-vv-scope="step-2" format="DD-MM-YYYY h:i:s" v-model='form.coverage.time_max'></datetime>
<datetime ref="maxTimeDatepicker" name="coverage[time_max]"
v-validate.immediate="this.isTimeRange ? 'required' : '' "
format="YYYY-MM-DD h:i:s" v-model='form.coverage.time_max'></datetime>
</div>
</div>
@ -495,6 +530,7 @@
<fieldset id="fieldset-keywords">
<legend>Dataset Keywords</legend>
<label name="SubjectLabel">Add Keyword </label>
<input type="hidden" v-validate:keywords_length="'min_value:3'" data-vv-as="keyword list" name="keywords_list">
<button class="pure-button button-small" @click.prevent="addKeyword()"><i class="fas fa-plus-circle"></i></button>
@if ($dataset->subjects->count() > 0)
<table id="keywords" class="pure-table pure-table-horizontal">
@ -545,21 +581,24 @@
<fieldset id="fieldset-files">
<legend>Files</legend>
{{-- <h3>File Upload</h3>
<div class="dropbox">
<input type="file" name="uploads" multiple @change="filesChange($event.target.name, $event.target.files)" class="input-file">
{{-- <h3>File Upload</h3>--}}
{{-- <div class="dropbox"> --}}
<div>
<input type="hidden" v-validate:files_length="'min_value:1'" data-vv-scope="step-4" data-vv-as="files list" name="files_list">
{{-- <input type="file" name="uploads[]" multiple @change="filesChange($event.target.name, $event.target.files)" class="input-file">
<p>
Drag your file(s) here to begin<br> or click to browse
</p>
</div> --}}
</p> --}}
</div>
<table id="items" class="pure-table pure-table-horizontal">
<thead>
<tr>
<th>#</th>
<th>Path Name</th>
<th>ID</th>
<th>Label</th>
<th>New</th>
{{-- <th>New</th> --}}
<th style="width: 130px;"></th>
</tr>
</thead>
@ -574,8 +613,7 @@
@else
<span class="alert">missing file: {{ $file->path_name }}</span>
@endif --}}
<a v-if="file.id != undefined" v-bind:href=" '/settings/file/download/' + file.id ">
<a v-if="file.id != undefined" v-bind:href=" '/settings/file/download/' + file.id ">
@{{ file.path_name }}
</a>
<span v-else> File name will be generated</span>
@ -583,14 +621,16 @@
</td>
<td>
<input v-bind:name="'files[' + index +'][id]'" readonly class="form-control" v-model="file.id" hidden />
<input v-bind:name="'files[' + index +'][id]'" readonly class="form-control" v-model="file.id" />
</td>
<td>
<input v-bind:name="'files['+index+'][label]'" class="form-control" placeholder="[FILE LABEL]"
v-model="file.label" v-validate="'required'" />
</td>
<td>
{{-- <td>
<i v-if="file.file" class="fas fa-file-upload"></i>
<input type="hidden" v-bind:name="'files['+index+'][file]'" class="form-control" v-bind:file="file.file"/>
</td>
<input type="text" v-bind:name="'files['+index+'][file]'" class="form-control" v-model="file.file"/>
</td> --}}
<td>
<button v-if="file.id == undefined" class="pure-button button-small is-warning"
@click.prevent="removeFile(index)">
@ -612,12 +652,4 @@
<i class="fas fa-save"></i>
<span>{!! $submitButtonText !!}</span>
</button>
</div>
@if($errors->any())
<ul class="alert validation-summary-errors">
@foreach($errors->all() as $error)
<li style="margin-left:5px;">{{ $error }}</li>
@endforeach
</ul>
@endif
</div>

View file

@ -32,8 +32,19 @@
{!! Form::model($dataset, ['method' => 'POST', 'route' => ['publish.workflow.submit.update', $dataset->id], 'id' => 'submitEditForm',
'class' => 'pure-form', 'enctype' => 'multipart/form-data', 'v-on:submit.prevent' => 'onSubmit' ]) !!}
@include('workflow/submitter/_form', ['submitButtonText' => 'Save Dataset', 'bookLabel' => 'Edit Dataset.'])
{{-- @include('errors._errors') --}}
{{-- @if (count($errors) > 0)
<div>
<b>Please correct the following error(s):</b>
<ul class="alert validation-summary-errors">
@foreach($errors->all() as $error)
<li style="margin-left:5px;">{{ $error }}</li>
@endforeach
</ul>
</div>
@endif --}}
<!-- client errors -->
<div v-if="errors.items.length > 0">
<b>Please correct the following error(s):</b>
<ul class="alert validation-summary-errors">