- edit Dataset before release to editor
- robots.txt avoid search bots - adapt Dataset.ts and LocationsMap.ts for edit form - edit createForm for new dataset attributes - vue-countdown.vue 1800 seconds
This commit is contained in:
parent
37a77d019b
commit
43d98a1f82
27 changed files with 1139 additions and 353 deletions
144
resources/js/EditDataset.js
Normal file
144
resources/js/EditDataset.js
Normal file
|
@ -0,0 +1,144 @@
|
|||
import { Component, Vue, Watch } from 'vue-property-decorator';
|
||||
import axios from 'axios';
|
||||
import VeeValidate from 'vee-validate';
|
||||
Vue.use(VeeValidate);
|
||||
import LocationsMap from './components/locations-map.vue';
|
||||
import Dataset from './components/Dataset';
|
||||
|
||||
|
||||
@Component({
|
||||
components: {
|
||||
LocationsMap
|
||||
}
|
||||
})
|
||||
export default class EditDataset extends Vue {
|
||||
// form: {},
|
||||
projects = [];
|
||||
checkeds = '';
|
||||
|
||||
form = new Dataset();
|
||||
// form = {
|
||||
// // reject_reviewer_note: '',
|
||||
|
||||
// language: '',
|
||||
// type: '',
|
||||
// project_id: '',
|
||||
// creating_corporation: 'TETHYS Repository',
|
||||
// embargo_date: '',
|
||||
// coverage: {
|
||||
// xmin: "",
|
||||
// ymin: "",
|
||||
// xmax: "",
|
||||
// ymax: "",
|
||||
// elevation_min: "",
|
||||
// elevation_max: "",
|
||||
// elevation_absolut: "",
|
||||
// depth_min: "",
|
||||
// depth_max: "",
|
||||
// depth_absolut: "",
|
||||
// time_min: "",
|
||||
// time_max: "",
|
||||
// time_absolut: ""
|
||||
// },
|
||||
// // checkedAuthors: [],
|
||||
// // checkedLicenses: [],
|
||||
// // files: [],
|
||||
// // keywords: [],
|
||||
// // references: [],
|
||||
// titles: [],
|
||||
// abstratcs: [],
|
||||
// clicenses : []
|
||||
|
||||
// // checkedContributors: []
|
||||
// };
|
||||
allErros = [];
|
||||
success = false;
|
||||
|
||||
beforeMount() {
|
||||
// this.form = window.Laravel.form;
|
||||
this.realMerge(this.form, window.Laravel.form);
|
||||
this.projects = window.Laravel.projects;
|
||||
this.licenses = window.Laravel.licenses;
|
||||
this.checkeds = window.Laravel.checkeds;
|
||||
}
|
||||
|
||||
/*
|
||||
* Recursively merge properties of two objects
|
||||
*/
|
||||
realMerge(from, dbObject) {
|
||||
|
||||
for (var prop in dbObject) {
|
||||
try {
|
||||
if (typeof dbObject[prop] !== 'object') {
|
||||
from[prop] = dbObject[prop];
|
||||
} else if (this.isObject(dbObject[prop])) {
|
||||
from[prop] = this.realMerge(from[prop], dbObject[prop]);
|
||||
}
|
||||
else if (this.isObject(dbObject[prop]) || this.isObject(from[prop])) {
|
||||
// coverage relation if null from dbObject
|
||||
from[prop] = from[prop];
|
||||
}
|
||||
else if (Array.isArray(dbObject[prop])) {
|
||||
from[prop] = dbObject[prop];
|
||||
}
|
||||
else {
|
||||
from[prop] = null;
|
||||
}
|
||||
} catch (e) {
|
||||
// Property in destination object not set; create it and set its value.
|
||||
from[prop] = dbObject[prop];
|
||||
}
|
||||
}
|
||||
if (from.embargo_date) {
|
||||
from.embargo_date = this.formatDateFormat(new Date(from.embargo_date), 'yyyy-MM-dd');
|
||||
}
|
||||
return from;
|
||||
}
|
||||
|
||||
formatDateFormat(x, y) {
|
||||
var z = {
|
||||
M: x.getMonth() + 1,
|
||||
d: x.getDate(),
|
||||
h: x.getHours(),
|
||||
m: x.getMinutes(),
|
||||
s: x.getSeconds()
|
||||
};
|
||||
y = y.replace(/(M+|d+|h+|m+|s+)/g, function (v) {
|
||||
return ((v.length > 1 ? "0" : "") + eval('z.' + v.slice(-1))).slice(-2)
|
||||
});
|
||||
|
||||
return y.replace(/(y+)/g, function (v) {
|
||||
return x.getFullYear().toString().slice(-v.length)
|
||||
});
|
||||
}
|
||||
|
||||
isObject(item) {
|
||||
return (typeof item === "object" && !Array.isArray(item) && item !== null);
|
||||
}
|
||||
|
||||
onSubmit() {
|
||||
// var dataform = new FormData();
|
||||
// dataform.append('name', this.form.name);
|
||||
// // dataform.append('comments', this.form.comments);
|
||||
// console.log(this.form.name);
|
||||
// axios.post('/vuevalidation/form', dataform).then(response => {
|
||||
// console.log(response);
|
||||
// this.allerros = [];
|
||||
// this.form.name = '';
|
||||
// this.form.comments = [];
|
||||
// this.success = true;
|
||||
// }).catch((error) => {
|
||||
// this.allerros = error.response.data.errors;
|
||||
// this.success = false;
|
||||
// });
|
||||
this.submitted = true;
|
||||
this.$validator.validate().then(result => {
|
||||
if (result) {
|
||||
// console.log('From Submitted!');
|
||||
document.getElementById("submitEditForm").submit();
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
|
@ -4,7 +4,7 @@ import { Component, Vue, Watch } from 'vue-property-decorator';
|
|||
function initialState() {
|
||||
return {
|
||||
type: "",
|
||||
state: "",
|
||||
server_state: "",
|
||||
rights: null,
|
||||
project_id: "",
|
||||
|
||||
|
@ -28,27 +28,27 @@ function initialState() {
|
|||
// ymax: ""
|
||||
// },
|
||||
coverage: {
|
||||
xmin: "",
|
||||
ymin: "",
|
||||
xmax: "",
|
||||
ymax: "",
|
||||
elevation_min: "",
|
||||
elevation_max: "",
|
||||
elevation_absolut: "",
|
||||
depth_min: "",
|
||||
depth_max: "",
|
||||
depth_absolut: "",
|
||||
time_min: "",
|
||||
time_max: "",
|
||||
time_absolut: ""
|
||||
x_min: null,
|
||||
y_min:null,
|
||||
x_max: null,
|
||||
y_max: null,
|
||||
elevation_min: null,
|
||||
elevation_max: null,
|
||||
elevation_absolut: null,
|
||||
depth_min: null,
|
||||
depth_max: null,
|
||||
depth_absolut: null,
|
||||
time_min: null,
|
||||
time_max: null,
|
||||
time_absolut: null
|
||||
},
|
||||
checkedAuthors: [],
|
||||
checkedLicenses: [], // [],
|
||||
files: [],
|
||||
keywords: [],
|
||||
subjects: [],
|
||||
references: [],
|
||||
titles: [],
|
||||
descriptions: [],
|
||||
abstratcs: [],
|
||||
checkedContributors: [],
|
||||
// checkedSubmitters: [],
|
||||
|
||||
|
@ -66,7 +66,7 @@ export default class Dataset extends Vue {
|
|||
// }
|
||||
initialState = {};
|
||||
type = "";
|
||||
state = "";
|
||||
server_state = "";
|
||||
rights = null;
|
||||
project_id = "";
|
||||
|
||||
|
@ -90,10 +90,10 @@ export default class Dataset extends Vue {
|
|||
// ymax: ""
|
||||
// },
|
||||
coverage = {
|
||||
xmin: "",
|
||||
ymin: "",
|
||||
xmax: "",
|
||||
ymax: "",
|
||||
x_min: "",
|
||||
y_min: "",
|
||||
x_max: "",
|
||||
y_max: "",
|
||||
elevation_min: "",
|
||||
elevation_max: "",
|
||||
elevation_absolut: "",
|
||||
|
@ -107,10 +107,10 @@ export default class Dataset extends Vue {
|
|||
checkedAuthors = [];
|
||||
checkedLicenses = [];
|
||||
files = [];
|
||||
keywords = [];
|
||||
subjects = [];
|
||||
references = [];
|
||||
titles = [];
|
||||
descriptions = [];
|
||||
abstracts = [];
|
||||
checkedContributors = [];
|
||||
// checkedSubmitters: [],
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ export default class DeleteButton extends L.Control {
|
|||
faIcon: 'fa-trash',
|
||||
id: "",
|
||||
text: ""
|
||||
// faIcon: 'fa-check-circle'
|
||||
};
|
||||
|
||||
geolocation = null;
|
||||
|
@ -16,16 +15,6 @@ export default class DeleteButton extends L.Control {
|
|||
_map = null;
|
||||
_container = null;
|
||||
|
||||
//constructor:
|
||||
// initialize(options) {
|
||||
// //util.mixin(this.options, options);
|
||||
// L.Util.setOptions(this, options);
|
||||
// // properties
|
||||
// this.geolocation = options.geolocation;
|
||||
// this.drawnItems = options.drawnItems;
|
||||
// this.bounds = options.bounds;
|
||||
// }
|
||||
|
||||
constructor(options) {
|
||||
super();
|
||||
//util.mixin(this.options, options);
|
||||
|
@ -47,11 +36,6 @@ export default class DeleteButton extends L.Control {
|
|||
this._container.style.width = "30px";
|
||||
this._container.style.height = "30px";
|
||||
this._buildButton();
|
||||
|
||||
// container.onclick = function() {
|
||||
// console.log("buttonClicked");
|
||||
// };
|
||||
|
||||
return this._container;
|
||||
}
|
||||
|
||||
|
@ -68,10 +52,10 @@ export default class DeleteButton extends L.Control {
|
|||
}
|
||||
L.DomEvent.on(_link, 'click', function (ev) {
|
||||
this.drawnItems.clearLayers();
|
||||
this.options.geolocation.xmin = "";
|
||||
this.options.geolocation.ymin = "";
|
||||
this.options.geolocation.xmax = "";
|
||||
this.options.geolocation.ymax = "";
|
||||
this.options.geolocation.x_min = "";
|
||||
this.options.geolocation.y_min = "";
|
||||
this.options.geolocation.x_max = "";
|
||||
this.options.geolocation.y_max = "";
|
||||
this._map.fitBounds(this.bounds);
|
||||
},
|
||||
this);
|
||||
|
|
|
@ -136,11 +136,11 @@ export default class LocationsMap extends Vue {
|
|||
// if (type === "rectancle") {
|
||||
// layer.bindPopup("A popup!" + layer.getBounds().toBBoxString());
|
||||
var bounds = layer.getBounds();
|
||||
this.geolocation.xmin = bounds.getSouthWest().lng;
|
||||
this.geolocation.ymin = bounds.getSouthWest().lat;
|
||||
this.geolocation.x_min = bounds.getSouthWest().lng;
|
||||
this.geolocation.y_min = bounds.getSouthWest().lat;
|
||||
// console.log(this.geolocation.xmin);
|
||||
this.geolocation.xmax = bounds.getNorthEast().lng;
|
||||
this.geolocation.ymax = bounds.getNorthEast().lat;
|
||||
this.geolocation.x_max = bounds.getNorthEast().lng;
|
||||
this.geolocation.y_max = bounds.getNorthEast().lat;
|
||||
// }
|
||||
|
||||
drawnItems.addLayer(layer);
|
||||
|
@ -166,7 +166,7 @@ export default class LocationsMap extends Vue {
|
|||
}
|
||||
|
||||
get validBoundingBox(): boolean {
|
||||
if (this.geolocation.xmin != "" && this.geolocation.ymin != "" && this.geolocation.xmax != "" && this.geolocation.ymax != "" ) {
|
||||
if (this.geolocation.x_min != "" && this.geolocation.y_min != "" && this.geolocation.x_max != "" && this.geolocation.y_max != "" ) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -90,7 +90,7 @@ import { Component, Inject, Vue, Prop, Watch } from "vue-property-decorator";
|
|||
components: { draggable }
|
||||
})
|
||||
export default class PersonTable extends Vue {
|
||||
@Inject("$validator") readonly $validator!: string;
|
||||
@Inject("$validator") readonly $validator;
|
||||
// inject: {
|
||||
// $validator: "$validator"
|
||||
// },
|
||||
|
|
|
@ -8,10 +8,10 @@
|
|||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
<label for="xmin">xmin:</label>
|
||||
<input
|
||||
name="xmin"
|
||||
name="coverage[x_min]"
|
||||
type="text"
|
||||
class="pure-u-23-24"
|
||||
v-model="geolocation.xmin"
|
||||
v-model="geolocation.x_min"
|
||||
data-vv-scope="step-2"
|
||||
id="xmin"
|
||||
v-validate="'decimal'"
|
||||
|
@ -21,10 +21,10 @@
|
|||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
<label for="ymin">ymin:</label>
|
||||
<input
|
||||
name="ymin"
|
||||
name="coverage[y_min]"
|
||||
type="text"
|
||||
class="pure-u-23-24"
|
||||
v-model="geolocation.ymin"
|
||||
v-model="geolocation.y_min"
|
||||
data-vv-scope="step-2"
|
||||
id="ymin"
|
||||
v-validate="'decimal'"
|
||||
|
@ -34,10 +34,10 @@
|
|||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
<label for="xmax">xmax:</label>
|
||||
<input
|
||||
name="xmax"
|
||||
name="coverage[x_max]"
|
||||
type="text"
|
||||
class="pure-u-23-24"
|
||||
v-model="geolocation.xmax"
|
||||
v-model="geolocation.x_max"
|
||||
data-vv-scope="step-2"
|
||||
id="xmax"
|
||||
v-validate="'decimal'"
|
||||
|
@ -47,10 +47,10 @@
|
|||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
<label for="ymax">ymax:</label>
|
||||
<input
|
||||
name="ymax"
|
||||
name="coverage[y_max]"
|
||||
type="text"
|
||||
class="pure-u-23-24"
|
||||
v-model="geolocation.ymax"
|
||||
v-model="geolocation.y_max"
|
||||
data-vv-scope="step-2"
|
||||
id="ymax"
|
||||
v-validate="'decimal'"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<div v-show="warningSeconds <= 600" class="vue-countdown">
|
||||
<div v-show="warningSeconds <= 1800" class="vue-countdown">
|
||||
<div class="vue-countdown--time">
|
||||
remaining time: {{ time }}
|
||||
</div>
|
||||
|
|
|
@ -150,7 +150,7 @@ const app = new Vue({
|
|||
},
|
||||
computed: {
|
||||
keywords_length() {
|
||||
return this.dataset.keywords.length;
|
||||
return this.dataset.subjects.length;
|
||||
},
|
||||
isInitial() {
|
||||
return this.currentStatus === STATUS_INITIAL;
|
||||
|
@ -249,7 +249,7 @@ const app = new Vue({
|
|||
formData.append('server_state', status);
|
||||
formData.append('type', this.dataset.type);
|
||||
formData.append('language', this.dataset.language);
|
||||
// formData.append('server_state', this.dataset.state);
|
||||
// formData.append('server_state', this.dataset.server_state);
|
||||
formData.append('rights', Number(this.dataset.rights));
|
||||
formData.append('creating_corporation', this.dataset.creating_corporation);
|
||||
formData.append('project_id', this.dataset.project_id);
|
||||
|
@ -262,10 +262,10 @@ const app = new Vue({
|
|||
|
||||
if (this.dataset.coverage.xmin !== "" && this.dataset.coverage.ymin != '' &&
|
||||
this.dataset.coverage.xmax !== '' && this.dataset.coverage.ymax !== '') {
|
||||
formData.append('coverage[x_min]', this.dataset.coverage.xmin);
|
||||
formData.append('coverage[y_min]', this.dataset.coverage.ymin);
|
||||
formData.append('coverage[x_max]', this.dataset.coverage.xmax);
|
||||
formData.append('coverage[y_max]', this.dataset.coverage.ymax);
|
||||
formData.append('coverage[x_min]', this.dataset.coverage.x_min);
|
||||
formData.append('coverage[y_min]', this.dataset.coverage.y_min);
|
||||
formData.append('coverage[x_max]', this.dataset.coverage.x_max);
|
||||
formData.append('coverage[y_max]', this.dataset.coverage.y_max);
|
||||
}
|
||||
|
||||
if (this.isElevationAbsolut) {
|
||||
|
@ -337,8 +337,8 @@ const app = new Vue({
|
|||
formData.append('references[' + i + '][relation]', reference.relation);
|
||||
}
|
||||
|
||||
for (var i = 0; i < this.dataset.keywords.length; i++) {
|
||||
let keyword = this.dataset.keywords[i];
|
||||
for (var i = 0; i < this.dataset.subjects.length; i++) {
|
||||
let keyword = this.dataset.subjects[i];
|
||||
formData.append('keywords[' + i + '][value]', keyword.value);
|
||||
formData.append('keywords[' + i + '][type]', keyword.type);
|
||||
formData.append('keywords[' + i + '][language]', keyword.language);
|
||||
|
@ -351,8 +351,8 @@ const app = new Vue({
|
|||
formData.append('titles[' + i + '][type]', title.type);
|
||||
}
|
||||
|
||||
for (var i = 0; i < this.dataset.descriptions.length; i++) {
|
||||
let description = this.dataset.descriptions[i];
|
||||
for (var i = 0; i < this.dataset.abstracts.length; i++) {
|
||||
let description = this.dataset.abstracts[i];
|
||||
formData.append('descriptions[' + i + '][value]', description.value);
|
||||
formData.append('descriptions[' + i + '][language]', description.language);
|
||||
formData.append('descriptions[' + i + '][type]', description.type);
|
||||
|
@ -453,13 +453,13 @@ const app = new Vue({
|
|||
addKeyword() {
|
||||
let newKeyword = { value: '', type: 'uncontrolled', language: this.dataset.language };
|
||||
//this.dataset.files.push(uploadedFiles[i]);
|
||||
this.dataset.keywords.push(newKeyword);
|
||||
this.dataset.subjects.push(newKeyword);
|
||||
},
|
||||
/*
|
||||
Removes a selected keyword
|
||||
*/
|
||||
removeKeyword(key) {
|
||||
this.dataset.keywords.splice(key, 1);
|
||||
this.dataset.subjects.splice(key, 1);
|
||||
},
|
||||
addTitle() {
|
||||
let newTitle = { value: '', language: '', type: '' };
|
||||
|
@ -475,13 +475,13 @@ const app = new Vue({
|
|||
addDescription() {
|
||||
let newTitle = { value: '', language: '', type: '' };
|
||||
//this.dataset.files.push(uploadedFiles[i]);
|
||||
this.dataset.descriptions.push(newTitle);
|
||||
this.dataset.abstracts.push(newTitle);
|
||||
},
|
||||
/*
|
||||
Removes a selected description
|
||||
*/
|
||||
removeDescription(key) {
|
||||
this.dataset.descriptions.splice(key, 1);
|
||||
this.dataset.abstracts.splice(key, 1);
|
||||
},
|
||||
filesChange(fieldName, fileList) {
|
||||
this.fileCount = fileList.length
|
||||
|
|
5
resources/js/mainEditDataset.js
Normal file
5
resources/js/mainEditDataset.js
Normal file
|
@ -0,0 +1,5 @@
|
|||
import EditDataset from './EditDataset';
|
||||
|
||||
const app = new EditDataset({
|
||||
el: '#app1'
|
||||
})
|
|
@ -152,7 +152,7 @@
|
|||
<button class="pure-button button-small" @click.prevent="addDescription()">+</button>
|
||||
</div>
|
||||
</div>
|
||||
<table class="pure-table pure-table-horizontal" v-if="dataset.descriptions.length">
|
||||
<table class="pure-table pure-table-horizontal" v-if="dataset.abstracts.length">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 20px;">Description</th>
|
||||
|
@ -162,7 +162,7 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(item, index) in dataset.descriptions">
|
||||
<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>
|
||||
</td>
|
||||
|
@ -253,35 +253,23 @@
|
|||
<input class="form-checkbox" name="rights" id="rights" type="checkbox" v-model="dataset.rights" v-validate="'required'" data-vv-scope="step-1">
|
||||
terms and conditions
|
||||
</label>
|
||||
<i class="fas fa-info-circle" @click="showModal" style="font-size:24px"></i>
|
||||
|
||||
|
||||
{{-- <button @click="showModal" class="pure-button button-small is-success">
|
||||
{!! trans('validation.attributes.backend.create-dataset.terms_and_conditions').'*' !!}
|
||||
</button> --}}
|
||||
|
||||
<!-- use the modal component, pass in the prop -->
|
||||
{{-- <button type="button" class="btn" @click="showModal">
|
||||
Open Modal!
|
||||
</button> --}}
|
||||
<Modal v-if="isModalVisible" @close="closeModal" >
|
||||
<template slot="header">
|
||||
{!! trans('validation.attributes.backend.create-dataset.terms_and_conditions').'*' !!}
|
||||
</template>
|
||||
<template slot="body">
|
||||
Die im GBA-RDR veröffentlichten Informationen und Metadaten unterliegen grundsätzlich den Open-Access-Bedingungen, wenn nicht anders angegeben. Die publizierten Datensets unterliegen einem definierten Zugriffs- sowie Nutzungsrecht welche in den Metadaten eindeutig beschrieben sind.
|
||||
</template>
|
||||
</Modal>
|
||||
|
||||
|
||||
<i class="fas fa-info-circle" @click="showModal" style="font-size:24px"></i>
|
||||
<Modal v-if="isModalVisible" @close="closeModal" >
|
||||
<template slot="header">
|
||||
{!! trans('validation.attributes.backend.create-dataset.terms_and_conditions').'*' !!}
|
||||
</template>
|
||||
<template slot="body">
|
||||
Die im GBA-RDR veröffentlichten Informationen und Metadaten unterliegen grundsätzlich den Open-Access-Bedingungen, wenn nicht anders angegeben. Die publizierten Datensets unterliegen einem definierten Zugriffs- sowie Nutzungsrecht welche in den Metadaten eindeutig beschrieben sind.
|
||||
</template>
|
||||
</Modal>
|
||||
|
||||
<br />
|
||||
<i v-show="errors.has('step-1.rights')" class="fas fa-exclamation-circle"></i>
|
||||
<span v-show="errors.has('step-1.rights')" class="text-danger">@{{ errors.first('step-1.rights') }}</span>
|
||||
|
||||
|
||||
<br />
|
||||
<i v-show="errors.has('step-1.rights')" class="fas fa-exclamation-circle"></i>
|
||||
<span v-show="errors.has('step-1.rights')" class="text-danger">@{{ errors.first('step-1.rights') }}</span>
|
||||
|
||||
|
||||
<span class="help-block">You must agree to continue</span>
|
||||
|
||||
<span class="help-block">You must agree to continue</span>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
|
@ -517,7 +505,7 @@
|
|||
<legend>Dataset Keywords</legend>
|
||||
<input type="hidden" v-validate:keywords_length="'min_value:3'" data-vv-scope="step-2" data-vv-as="keyword list" name="keywords_list">
|
||||
<button class="pure-button button-small" @click.prevent="addKeyword()">Add Keyword</button>
|
||||
<table class="table table-hover" v-if="dataset.keywords.length">
|
||||
<table class="table table-hover" v-if="dataset.subjects.length">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 20px;">Keyword</th>
|
||||
|
@ -527,9 +515,9 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(item, index) in dataset.keywords">
|
||||
<tr v-for="(item, index) in dataset.subjects">
|
||||
<td>
|
||||
<input name="Keyword Value" class="form-control" placeholder="[KEYWORD VALUE]" v-model="item.value" v-validate="{required: true, unique: [dataset.keywords, index, 'value']}"
|
||||
<input name="Keyword Value" class="form-control" placeholder="[KEYWORD VALUE]" v-model="item.value" v-validate="{required: true, unique: [dataset.subjects, index, 'value']}"
|
||||
data-vv-scope="step-2" />
|
||||
</td>
|
||||
<td>
|
||||
|
@ -628,12 +616,7 @@
|
|||
Uploading @{{ fileCount }} files...
|
||||
</p>
|
||||
</div>
|
||||
{{-- <button @click.prevent="resetDropbox()" v-bind:disabled="isInitial" class="pure-button is-warning">Reset Dropbox</button> --}} {{--
|
||||
<ul class="list-unstyled">
|
||||
<li v-for="(item, index) in dataset.files">
|
||||
@{{ item.name }} <i class="fa fa-remove"></i><span class="remove-file" v-on:click="removeFile(index)"> Remove</span>
|
||||
</li>
|
||||
</ul> --}}
|
||||
|
||||
|
||||
<table class="table table-hover" v-if="dataset.files.length">
|
||||
<thead>
|
||||
|
|
|
@ -1,146 +1,202 @@
|
|||
<fieldset id="fieldset-General">
|
||||
<legend>General</legend>
|
||||
<div class="pure-g">
|
||||
|
||||
<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 --']) !!}
|
||||
</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--']) !!}
|
||||
<fieldset id="fieldset-State">
|
||||
<legend>State & notes</legend>
|
||||
<div class="pure-g">
|
||||
@if(!empty($reject_reviewer_note))
|
||||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
{!! Form::label('reject_reviewer_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']) !!}
|
||||
</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>
|
||||
<small id="projectHelp" class="pure-form-message-inline">project is optional</small>
|
||||
</fieldset>
|
||||
|
||||
<fieldset id="fieldset-General">
|
||||
<legend>General</legend>
|
||||
<div class="pure-g">
|
||||
|
||||
<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' =>
|
||||
'form.language', "data-vv-as" => "Language", "v-validate" => "'required'"]) !!}
|
||||
</div>
|
||||
<small id="languageHelp" class="pure-form-message-inline">select dataset main language</small>
|
||||
</div>
|
||||
|
||||
<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 --',
|
||||
'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--', '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('creating_corporation', 'Creating Corporation') !!}
|
||||
{!! Form::text('creating_corporation', null, ['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-dates">
|
||||
<legend>Date(s)</legend>
|
||||
<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', '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']) !!}
|
||||
|
||||
</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>
|
||||
{!! 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>
|
||||
|
||||
<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']) !!}
|
||||
</div>
|
||||
|
||||
</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>
|
||||
</fieldset>
|
||||
|
||||
{{-- <fieldset id="fieldset-geolocation">
|
||||
<legend>Coverage: Geolocation, Elevation, Depth, Time</legend>
|
||||
<div class="pure-g">
|
||||
<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']) !!}
|
||||
{!! Form::label('xmin', 'xmin: ') !!}
|
||||
{!! Form::text('coverage[xmin]', null, ['class' => 'pure-u-23-24', 'v-model' => 'form.coverage.xmin'])
|
||||
!!}
|
||||
</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']) !!}
|
||||
{!! Form::label('ymin', 'ymin: ') !!}
|
||||
{!! Form::text('coverage[ymin]', null, ['class' => 'pure-u-23-24', 'v-model' => 'form.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']) !!}
|
||||
{!! Form::label('xmax', 'xmax: ') !!}
|
||||
{!! Form::text('coverage[xmax]', null, ['class' => 'pure-u-23-24', 'v-model' => 'form.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']) !!}
|
||||
{!! Form::label('ymax', 'ymax: ') !!}
|
||||
{!! Form::text('coverage[ymax]', null, ['class' => 'pure-u-23-24', 'v-model' => 'form.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::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' : '' " ]) !!}
|
||||
['class' => 'pure-u-23-24', 'v-model' => 'form.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' : '' "]) !!}
|
||||
{!! Form::label('elevation_min', 'elevation min: ') !!}
|
||||
{!! Form::text('coverage[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' : '' "]) !!}
|
||||
</div>
|
||||
<div v-show="elevation === 'range'" class="pure-u-1 pure-u-md-1">
|
||||
{!! Form::label('elevation_max', 'elevation max: ') !!}
|
||||
<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' : '' "]) !!}
|
||||
['class' => 'pure-u-23-24', 'v-model' => 'form.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::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' : '' " ]) !!}
|
||||
['class' => 'pure-u-23-24', 'v-model' => 'form.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' : '' "]) !!}
|
||||
{!! Form::label('depth_min', 'depth min: ') !!}
|
||||
{!! Form::text('coverage[depth_min]', null,
|
||||
['class' => 'pure-u-23-24', 'v-model' => 'form.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: ') !!}
|
||||
<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' : '' "]) !!}
|
||||
['class' => 'pure-u-23-24', 'v-model' => 'form.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::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' : '' " ]) !!}
|
||||
['class' => 'pure-u-23-24', 'v-model' => 'form.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' : '' "]) !!}
|
||||
{!! Form::label('time_min', 'time min: ') !!}
|
||||
{!! Form::text('coverage[time_min]', null,
|
||||
['class' => 'pure-u-23-24', 'v-model' => 'form.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: ') !!}
|
||||
<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' : '' "]) !!}
|
||||
['class' => 'pure-u-23-24', 'v-model' => 'form.coverage.time_max', 'data-vv-scope' => 'step-2',
|
||||
"v-validate" => "this.isElevationRange ? 'required|integer' : '' "]) !!}
|
||||
</div>
|
||||
@endif,
|
||||
</div>
|
||||
</fieldset>
|
||||
</fieldset> --}}
|
||||
|
||||
<fieldset id="fieldset-titles">
|
||||
<legend>Title</legend>
|
||||
<div class="pure-g">
|
||||
|
||||
@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
|
||||
{{-- @foreach($dataset->titles as $key => $title)
|
||||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
{{ Form::label('title', 'Title ' .($key+1).':') }}
|
||||
{{ 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 --}}
|
||||
|
||||
<template v-for="(title, key) in form.titles">
|
||||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
<label :for="'titles['+title.id+'][value]'"> @{{ 'Title ' + (key + 1) + ':' }}</label>
|
||||
<input type="text" :id="'titles['+title.id+'][value]'" :name="'titles['+title.id+'][value]'" v-model="title.value" class="pure-u-23-24">
|
||||
</div>
|
||||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
<label :for="'titles['+title.id+'][language]'"> @{{ 'Language for title ' + (key + 1) + ':' }}</label>
|
||||
<input type="text" :id="'titles['+title.id+'][language]'" :name="'titles['+title.id+'][language]'" v-model="title.language" class="pure-u-23-24" readonly>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
|
@ -149,17 +205,28 @@
|
|||
<legend>Abstract</legend>
|
||||
<div class="pure-g">
|
||||
|
||||
@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']) }}
|
||||
</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
|
||||
{{-- @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']) }}
|
||||
</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 --}}
|
||||
|
||||
<template v-for="(abstract, key) in form.abstracts">
|
||||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
<label :for="'abstracts['+abstract.id+'][value]'"> @{{ 'Title ' + (key + 1) + ':' }}</label>
|
||||
<input type="text" :id="'abstracts['+abstract.id+'][value]'" :name="'abstracts['+abstract.id+'][value]'" v-model="abstract.value" class="pure-u-23-24">
|
||||
</div>
|
||||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
<label :for="'abstracts['+abstract.id+'][language]'"> @{{ 'Language for abstract ' + (key + 1) + ':' }}</label>
|
||||
<input type="text" :id="'abstracts['+abstract.id+'][language]'" :name="'abstracts['+abstract.id+'][language]'" v-model="abstract.language" class="pure-u-23-24" readonly>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
|
@ -167,74 +234,87 @@
|
|||
<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)
|
||||
{{-- @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> --}}
|
||||
|
||||
<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 }}
|
||||
</label>
|
||||
<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>
|
||||
{{-- <table class="table table-hover" v-if="dataset.keywords.length"> --}}
|
||||
@if ($dataset->references->count() > 0)
|
||||
<table id="references" class="pure-table pure-table-horizontal">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 20px;">Reference value</th>
|
||||
<th style="width: 20px;">Label</th>
|
||||
<th>Type</th>
|
||||
<th>Relation</th>
|
||||
<th style="width: 130px;"></th>
|
||||
</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>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
@else
|
||||
<span>...there are no references</span>
|
||||
@endif
|
||||
</fieldset>
|
||||
<legend>Dataset References</legend>
|
||||
{{-- <table class="table table-hover" v-if="dataset.keywords.length"> --}}
|
||||
@if ($dataset->references->count() > 0)
|
||||
<table id="references" class="pure-table pure-table-horizontal">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 20px;">Reference value</th>
|
||||
<th style="width: 20px;">Label</th>
|
||||
<th>Type</th>
|
||||
<th>Relation</th>
|
||||
<th style="width: 130px;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@foreach($dataset->references as $key => $reference)
|
||||
<tr v-for="(item, index) in form.references">
|
||||
<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>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
@else
|
||||
<span>...there are no references</span>
|
||||
@endif
|
||||
</fieldset>
|
||||
|
||||
<fieldset id="fieldset-keywords">
|
||||
<legend>Dataset Keywords</legend>
|
||||
<legend>Dataset Keywords</legend>
|
||||
{{-- <table class="table table-hover" v-if="dataset.keywords.length"> --}}
|
||||
@if ($dataset->subjects->count() > 0)
|
||||
<table id="keywords" class="pure-table pure-table-horizontal">
|
||||
@if ($dataset->subjects->count() > 0)
|
||||
<table id="keywords" class="pure-table pure-table-horizontal">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 20px;">Keyword</th>
|
||||
|
@ -242,24 +322,31 @@
|
|||
<th style="width: 130px;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{-- <tr v-for="(item, index) in dataset.keywords"> --}}
|
||||
@foreach($dataset->subjects as $key => $keyword)
|
||||
<tr>
|
||||
<tbody>
|
||||
{{-- @foreach($dataset->subjects as $key => $keyword) --}}
|
||||
<tr>
|
||||
<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[' + item.id +'][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[' + item.id +'][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> --}}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
{{-- @endforeach --}}
|
||||
</tbody>
|
||||
</table>
|
||||
@else
|
||||
|
@ -275,31 +362,32 @@
|
|||
<th>Path Name</th>
|
||||
<th>Label</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($dataset->files as $key => $file)
|
||||
<tr>
|
||||
{{-- @foreach($dataset->files as $key => $file) --}}
|
||||
<tr v-for="(file, index) in form.files" :key="file.id">
|
||||
<td>
|
||||
@if($file->exists() === true)
|
||||
<a href="{{ route('settings.file.download', ['id' => $file->id]) }}"> {{ $file->path_name }} </a>
|
||||
{{-- @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
|
||||
<span class="alert">missing file: {{ $file->path_name }}</span>
|
||||
@endif --}}
|
||||
<a v-if="'storage/' + file.path_name" v-bind:src= " '/settings/file/download/' + file.id ">@{{ file.path_name }}</a>
|
||||
</td>
|
||||
<td>
|
||||
{{-- {{ $file->label }} --}}
|
||||
{{ Form::text('files['.$file->id.'][label]', $file->label, ['class' => 'form-control', 'placeholder' => '[FILE LABEL]']) }}
|
||||
<td>
|
||||
{{-- {{ Form::text('files['.$file->id.'][label]', $file->label, ['class' => 'form-control', 'placeholder' => '[FILE LABEL]']) }} --}}
|
||||
<input v-bind:name="'files[' + file.id +'][label]'" class="form-control" placeholder="[FILE LABEL]" v-model="file.label" v-validate="'required'" />
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
{{-- @endforeach --}}
|
||||
</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="fa fa-share"></i>
|
||||
<span>{!! $submitButtonText !!}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
|
@ -6,23 +6,57 @@
|
|||
<span>Edit 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">
|
||||
|
||||
<div class="pure-u-1 pure-u-md-3-3">
|
||||
<div class="pure-u-1 pure-u-md-3-3">
|
||||
<div>
|
||||
<a href="{{ route('publish.workflow.submit.index') }}" class="pure-button button-small">
|
||||
<i class="fa fa-chevron-left"></i>
|
||||
<span>BACK</span>
|
||||
</a>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
{!! Form::model($dataset, ['method' => 'POST', 'route' => ['publish.workflow.submit.update', $dataset->id], 'class' => 'pure-form', 'enctype' => 'multipart/form-data' ]) !!}
|
||||
@include('workflow/submitter/_form', ['submitButtonText' => 'Edit Dataset', 'bookLabel' => 'Edit Dataset.'])
|
||||
@include('errors._errors')
|
||||
<div id="app1">
|
||||
{!! 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' => 'Edit Dataset', 'bookLabel' => 'Edit Dataset.'])
|
||||
{{-- @include('errors._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>
|
||||
|
||||
</div>
|
||||
@stop
|
||||
|
||||
@section('after-scripts')
|
||||
<script>
|
||||
window.Laravel = <?php echo json_encode([
|
||||
'csrf_token' => csrf_token(),
|
||||
'form' => $dataset,
|
||||
'projects' => $projects,
|
||||
'licenses' => $licenses,
|
||||
'checkeds' => $checkeds
|
||||
]); ?>
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="{{ asset('backend/publish/mainEditDataset.js') }}"></script>
|
||||
@stop
|
Loading…
Add table
editor.link_modal.header
Reference in a new issue