+ composer updates

+ CreatingCorporation nur readonly
+  doctypes zusätzlich: 'mixedtype' => 'Mixed Type'
+ bei einer Fehlermeldung beim Submit: kein Reset mehr... nur mehr "retry: edit inputs"
+ Eingabe der Contributor gleich nach der Eingabe der Creator
+ Projekteingabe beim Submitten entfernt
+ Keyword wird nun mit einer default language angelegt
+ elevation und depth-Angaben in Meter (im Label)
+ 'server_date_modified' wird nun auch aktualisiert beim automatischen reject,
falls der Reviewer länger als 14 Tage den Datensatz nicht kontrolliert
+ GeoLocation hat nun eine Doppelbindung -> nicht mehr readonly
This commit is contained in:
Arno Kaimbacher 2019-06-21 16:00:51 +02:00
parent dabb905111
commit 0dc6ca034e
21 changed files with 1092 additions and 864 deletions

View File

@ -59,7 +59,8 @@ class DatasetState extends Command
->where('id', $dataset->id) ->where('id', $dataset->id)
->update([ ->update([
'reject_reviewer_note' => 'Dataset was automatically rejected because of the time limit', 'reject_reviewer_note' => 'Dataset was automatically rejected because of the time limit',
'server_state' => 'rejected_reviewer' 'server_state' => 'rejected_reviewer',
'server_date_modified' => DB::raw('now()')
]); ]);
} }
} }

View File

@ -54,9 +54,7 @@ class IndexController extends Controller
->pluck('part1', 'part1'); ->pluck('part1', 'part1');
// ->toArray(); // ->toArray();
// $persons = Person::where('status', 1) // $projects = Project::pluck('label', 'id');
// ->pluck('last_name', 'id');
$projects = Project::pluck('label', 'id');
$relatedIdentifierTypes = ["ARK", "arXiv", "bibcode", "DOI", "EAN13", "EISSN", "Handle", "IGSN", "ISBN", "ISSN", "ISTC", "LISSN", "LSID", "PMID", "PURL", "UPC", "URL", "URN"]; $relatedIdentifierTypes = ["ARK", "arXiv", "bibcode", "DOI", "EAN13", "EISSN", "Handle", "IGSN", "ISBN", "ISSN", "ISTC", "LISSN", "LSID", "PMID", "PURL", "UPC", "URL", "URN"];
$relatedIdentifierTypes = array_combine($relatedIdentifierTypes, $relatedIdentifierTypes); $relatedIdentifierTypes = array_combine($relatedIdentifierTypes, $relatedIdentifierTypes);
@ -67,14 +65,14 @@ class IndexController extends Controller
$keywordTypes = ['uncontrolled' => 'uncontrolled']; $keywordTypes = ['uncontrolled' => 'uncontrolled'];
$descriptionTypes = [ 'methods' => 'methods', 'series_information' => 'series_information', 'technical_info' => 'technical_info', 'other' => 'other']; $descriptionTypes = [ 'methods' => 'methods', 'series_information' => 'series_information', 'technical_info' => 'technical_info', 'translated' => 'translated', 'other' => 'other'];
$page = Page::query()->where('page_slug', 'terms-and-conditions')->firstOrFail(); $page = Page::query()->where('page_slug', 'terms-and-conditions')->firstOrFail();
//$relationTypes = array('updates' => 'updates', 'updated-by' => 'updated-by', 'other' => 'other'); //$relationTypes = array('updates' => 'updates', 'updated-by' => 'updated-by', 'other' => 'other');
return view( return view(
'publish.create-step1', 'publish.create-step1',
compact('licenses', 'languages', 'projects', 'relatedIdentifierTypes', 'relationTypes', 'titleTypes', 'keywordTypes', 'descriptionTypes', 'page') compact('licenses', 'languages', 'relatedIdentifierTypes', 'relationTypes', 'titleTypes', 'keywordTypes', 'descriptionTypes', 'page')
); );
} }

View File

@ -10,7 +10,7 @@ class Subject extends Model
protected $table = 'document_subjects'; protected $table = 'document_subjects';
public $timestamps = false; public $timestamps = false;
protected $fillable = ['value', 'type']; protected $fillable = ['value', 'type', 'language'];
public function dataset() public function dataset()
{ {

70
composer.lock generated
View File

@ -227,21 +227,24 @@
}, },
{ {
"name": "doctrine/lexer", "name": "doctrine/lexer",
"version": "v1.0.1", "version": "1.0.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/lexer.git", "url": "https://github.com/doctrine/lexer.git",
"reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", "url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8",
"reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.2" "php": ">=5.3.2"
}, },
"require-dev": {
"phpunit/phpunit": "^4.5"
},
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@ -249,8 +252,8 @@
} }
}, },
"autoload": { "autoload": {
"psr-0": { "psr-4": {
"Doctrine\\Common\\Lexer\\": "lib/" "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
} }
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
@ -271,13 +274,16 @@
"email": "schmittjoh@gmail.com" "email": "schmittjoh@gmail.com"
} }
], ],
"description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
"homepage": "http://www.doctrine-project.org", "homepage": "https://www.doctrine-project.org/projects/lexer.html",
"keywords": [ "keywords": [
"annotations",
"docblock",
"lexer", "lexer",
"parser" "parser",
"php"
], ],
"time": "2014-09-09T13:34:57+00:00" "time": "2019-06-08T11:03:04+00:00"
}, },
{ {
"name": "dragonmantank/cron-expression", "name": "dragonmantank/cron-expression",
@ -2985,16 +2991,16 @@
}, },
{ {
"name": "yajra/laravel-datatables-oracle", "name": "yajra/laravel-datatables-oracle",
"version": "v8.13.6", "version": "v8.13.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/yajra/laravel-datatables.git", "url": "https://github.com/yajra/laravel-datatables.git",
"reference": "0b6f9c0653499d73d051dc46275511fc4c9dd7f1" "reference": "17b50e3ee91ceb5b1cc6e596c366718af4ff45cc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/yajra/laravel-datatables/zipball/0b6f9c0653499d73d051dc46275511fc4c9dd7f1", "url": "https://api.github.com/repos/yajra/laravel-datatables/zipball/17b50e3ee91ceb5b1cc6e596c366718af4ff45cc",
"reference": "0b6f9c0653499d73d051dc46275511fc4c9dd7f1", "reference": "17b50e3ee91ceb5b1cc6e596c366718af4ff45cc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3052,7 +3058,7 @@
"jquery", "jquery",
"laravel" "laravel"
], ],
"time": "2019-03-26T05:01:51+00:00" "time": "2019-06-12T05:03:20+00:00"
}, },
{ {
"name": "zizaco/entrust", "name": "zizaco/entrust",
@ -3544,16 +3550,16 @@
}, },
{ {
"name": "phpspec/prophecy", "name": "phpspec/prophecy",
"version": "1.8.0", "version": "1.8.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpspec/prophecy.git", "url": "https://github.com/phpspec/prophecy.git",
"reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76",
"reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3574,8 +3580,8 @@
} }
}, },
"autoload": { "autoload": {
"psr-0": { "psr-4": {
"Prophecy\\": "src/" "Prophecy\\": "src/Prophecy"
} }
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
@ -3603,7 +3609,7 @@
"spy", "spy",
"stub" "stub"
], ],
"time": "2018-08-05T17:53:17+00:00" "time": "2019-06-13T12:50:23+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
@ -3761,16 +3767,16 @@
}, },
{ {
"name": "phpunit/php-timer", "name": "phpunit/php-timer",
"version": "2.1.1", "version": "2.1.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git", "url": "https://github.com/sebastianbergmann/php-timer.git",
"reference": "8b389aebe1b8b0578430bda0c7c95a829608e059" "reference": "1038454804406b0b5f5f520358e78c1c2f71501e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b389aebe1b8b0578430bda0c7c95a829608e059", "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e",
"reference": "8b389aebe1b8b0578430bda0c7c95a829608e059", "reference": "1038454804406b0b5f5f520358e78c1c2f71501e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3806,7 +3812,7 @@
"keywords": [ "keywords": [
"timer" "timer"
], ],
"time": "2019-02-20T10:12:59+00:00" "time": "2019-06-07T04:22:29+00:00"
}, },
{ {
"name": "phpunit/php-token-stream", "name": "phpunit/php-token-stream",
@ -4560,16 +4566,16 @@
}, },
{ {
"name": "theseer/tokenizer", "name": "theseer/tokenizer",
"version": "1.1.2", "version": "1.1.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/theseer/tokenizer.git", "url": "https://github.com/theseer/tokenizer.git",
"reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8" "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/1c42705be2b6c1de5904f8afacef5895cab44bf8", "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
"reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8", "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4596,7 +4602,7 @@
} }
], ],
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"time": "2019-04-04T09:56:43+00:00" "time": "2019-06-13T22:48:21+00:00"
}, },
{ {
"name": "webmozart/assert", "name": "webmozart/assert",

1599
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -8,23 +8,25 @@
"production": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" "production": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
}, },
"devDependencies": { "devDependencies": {
"axios": "^0.18", "axios": "^0.18.1",
"bootstrap-sass": "^3.4.0", "bootstrap-sass": "^3.4.0",
"cross-env": "^5.1", "cross-env": "^5.1",
"jquery": "^3.2", "jquery": "^3.4.1",
"laravel-mix": "^4.0.13", "laravel-mix": "^4.0.16",
"leaflet": "^1.4.0", "leaflet": "^1.5.1",
"leaflet-draw": "^1.0.4", "leaflet-draw": "^1.0.4",
"lodash": "^4.17.11", "lodash": "^4.17.11",
"node-sass": "^4.11.0", "node-sass": "^4.12.0",
"npm-font-open-sans": "^1.1.0", "npm-font-open-sans": "^1.1.0",
"purecss-sass": "^1.0.0", "purecss-sass": "^1.0.0",
"resolve-url-loader": "^2.3.1", "resolve-url-loader": "^2.3.2",
"sass-loader": "^7.1.0", "sass-loader": "^7.1.0",
"vee-validate": "^2.1.5", "vee-validate": "^2.2.10",
"vue": "^2.5.21", "vue": "^2.5.21",
"vue-events": "^3.1.0", "vue-events": "^3.1.0",
"vue-template-compiler": "^2.5.21", "vue-template-compiler": "^2.5.21",
"vue-toast-notification": "0.0.2",
"vuejs-datetimepicker": "^1.1.11",
"vuetable-2": "^1.7.5" "vuetable-2": "^1.7.5"
}, },
"dependencies": { "dependencies": {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
public/css/app1.css vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,66 @@
<template> <template>
<div> <div style="position:relative">
<div id="map"> <!-- <div id="inset">
xmin:
<input
type="text"
name="xmin"
id="xmin"
v-model="geolocation.xmin"
data-vv-scope="step-2"
v-validate="'decimal'"
>
<br>ymin:
<input
type="text"
name="ymin"
id="ymin"
v-model="geolocation.ymin"
data-vv-scope="step-2"
>
xmax:
<input
type="text"
name="xmax"
id="xmax"
v-model="geolocation.xmax"
data-vv-scope="step-2"
>
<br>ymax:
<input
type="text"
name="ymax"
id="ymax"
v-model="geolocation.ymax"
data-vv-scope="step-2"
>
<input type="button" v-on:click="zoomTo" value="zoomTo">
</div> -->
<div id="map"></div>
<div class="pure-g">
<div class="pure-u-1 pure-u-md-1-2 pure-div">
<label for="xmin">xmin: </label>
<input name="xmin" type="text" class="pure-u-23-24" v-model="geolocation.xmin" data-vv-scope="step-2" id="xmin" v-validate="'decimal'">
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
<label for="ymin">ymin: </label>
<input name="ymin" type="text" class="pure-u-23-24" v-model="geolocation.ymin" data-vv-scope="step-2" id="ymin" v-validate="'decimal'">
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
<label for="xmax">xmax: </label>
<input name="xmax" type="text" class="pure-u-23-24" v-model="geolocation.xmax" data-vv-scope="step-2" id="xmax" v-validate="'decimal'">
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
<label for="ymax">ymax: </label>
<input name="ymax" type="text" class="pure-u-23-24" v-model="geolocation.ymax" data-vv-scope="step-2" id="ymax" v-validate="'decimal'">
</div>
<input type="button" v-on:click="zoomTo" value="validate coordinates">
</div> </div>
</div> </div>
</template> </template>
@ -20,14 +79,50 @@ export default {
data() { data() {
return { return {
map: [], map: [],
markers: null drawnItems: null,
locationErrors: []
}; };
},
created() {
this.$validator.extend('boundingBox', {
getMessage: field => 'At least one ' + field + ' needs to be checked.',
validate: (value, [testProp]) => {
const options = this.dataset.checkedLicenses;
return value || options.some((option) => option[testProp]);
}
});
}, },
computed: {}, computed: {},
watch: {}, watch: {},
methods: {}, methods: {
zoomTo() {
var _this = this;
_this.locationErrors.length = 0;
this.drawnItems.clearLayers();
var xmin = document.getElementById("xmin").value;
var ymin = document.getElementById("ymin").value;
var xmax = document.getElementById("xmax").value;
var ymax = document.getElementById("ymax").value;
var bounds = [[ymin, xmin], [ymax, xmax]];
try {
var boundingBox = L.rectangle(bounds, { color: "#005F6A", weight: 1 });
// this.geolocation.xmin = xmin;
// this.geolocation.ymin = ymin;
// this.geolocation.xmax = xmax;
// this.geolocation.ymax = ymax;
_this.drawnItems.addLayer(boundingBox);
_this.map.fitBounds(bounds);
_this.$toast.success("valid bounding box");
} catch (e) {
// _this.errors.push(e);
_this.$toast.error(e);
}
}
},
mounted() { mounted() {
const map = L.map("map"); const map = L.map("map");
this.map = map;
map.scrollWheelZoom.disable(); map.scrollWheelZoom.disable();
// Construct a bounding box for this map that the user cannot // Construct a bounding box for this map that the user cannot
var southWest = L.latLng(46.5, 9.9), var southWest = L.latLng(46.5, 9.9),
@ -57,7 +152,7 @@ export default {
// this.addPlaces(this.places) // this.addPlaces(this.places)
// Initialise the FeatureGroup to store editable layers // Initialise the FeatureGroup to store editable layers
var drawnItems = new L.FeatureGroup(); var drawnItems = (this.drawnItems = new L.FeatureGroup());
map.addLayer(drawnItems); map.addLayer(drawnItems);
var drawPluginOptions = { var drawPluginOptions = {
position: "topright", position: "topright",
@ -140,4 +235,14 @@ export default {
font-size: 13px; font-size: 13px;
text-shadow: 0 0 2px #fff; text-shadow: 0 0 2px #fff;
} }
#inset {
position: absolute;
bottom: 0;
left: 0;
border: none;
width: 120px;
z-index: 999;
// height: 120px;
}
</style> </style>

View File

@ -32,10 +32,18 @@ import MyAutocomplete from './components/MyAutocomplete.vue';
import VeeValidate from 'vee-validate'; import VeeValidate from 'vee-validate';
import dataset from './components/Dataset'; import dataset from './components/Dataset';
import LocationsMap from './components/LocationsMap.vue'; import LocationsMap from './components/LocationsMap.vue';
import modal from './components/ShowModal.vue' import modal from './components/ShowModal.vue';
// import datetime from 'vuejs-datetimepicker';
// import { Validator } from 'vee-validate'; // import { Validator } from 'vee-validate';
import VueToast from 'vue-toast-notification';
import 'vue-toast-notification/dist/index.css';
Vue.use(VueToast);
Vue.use(VeeValidate); // Vue.use(VeeValidate);
Vue.use(VeeValidate, {
// validity: true
useConstraintAttrs: true
});
const STATUS_INITIAL = 0, STATUS_SAVING = 1, STATUS_SUCCESS = 2, STATUS_FAILED = 3; const STATUS_INITIAL = 0, STATUS_SAVING = 1, STATUS_SUCCESS = 2, STATUS_FAILED = 3;
const app = new Vue({ const app = new Vue({
@ -370,7 +378,7 @@ const app = new Vue({
adds a new Keyword adds a new Keyword
*/ */
addKeyword() { addKeyword() {
let newKeyword = { value: '', type: '' }; let newKeyword = { value: '', type: '', language: this.dataset.language };
//this.dataset.files.push(uploadedFiles[i]); //this.dataset.files.push(uploadedFiles[i]);
this.dataset.keywords.push(newKeyword); this.dataset.keywords.push(newKeyword);
}, },

View File

@ -0,0 +1,3 @@
import TinyDatePicker from 'tiny-date-picker';
TinyDatePicker(document.querySelector("input[name='time_absolut']"));

View File

@ -19,6 +19,7 @@ return [
'models' => 'Models', 'models' => 'Models',
'rawdata' => 'Raw Data', 'rawdata' => 'Raw Data',
'supplementarydata' => 'Supplementary Data', 'supplementarydata' => 'Supplementary Data',
'mixedtype' => 'Mixed Type'
//'diplom' => 'Diploma Thesis', //'diplom' => 'Diploma Thesis',
//'doctoralthesis' => 'Doctoral Thesis', //'doctoralthesis' => 'Doctoral Thesis',
//'coursematerial' => 'Course Material', //'coursematerial' => 'Course Material',

View File

@ -201,11 +201,30 @@
</div> </div>
</fieldset> </fieldset>
<fieldset id="fieldset-contributors">
<legend>Contributors</legend>
<div class="pure-g">
<div class="pure-u-1 pure-u-md-1-2 pure-div">
<my-autocomplete title="searching active person table" @person="onAddContributor"></my-autocomplete>
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
<div class="pure-control-group checkboxlist">
<label v-for="(contributor, index) in dataset.contributors" :for="contributor.id" class="pure-checkbox">
<input type="checkbox" name="contributors" v-bind:value="contributor.id" v-model="dataset.checkedContributors" class="form-check-input" data-vv-scope="step-1">
@{{ contributor.full_name }}
</label>
<br />
{{-- <span>Checked Contributors: @{{ dataset.checkedContributors }}</span> --}}
</div>
</div>
</div>
</fieldset>
<fieldset id="fieldset-publisher"> <fieldset id="fieldset-publisher">
<legend>Publisher</legend> <legend>Publisher</legend>
<div class="pure-u-1 pure-u-md-1-2 pure-div"> <div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('CreatingCorporation', 'Creating Corporation') !!} {!! Form::label('CreatingCorporation', 'Creating Corporation') !!}
{!! Form::text('CreatingCorporation', null, ['class' => {!! Form::text('CreatingCorporation', null, ['readonly', 'class' =>
'pure-u-23-24', 'v-model' => 'dataset.creating_corporation', "v-validate" => "'required'", 'data-vv-scope' => 'step-1']) !!} 'pure-u-23-24', 'v-model' => 'dataset.creating_corporation', "v-validate" => "'required'", 'data-vv-scope' => 'step-1']) !!}
</div> </div>
</fieldset> </fieldset>
@ -270,17 +289,10 @@
<div v-if="step === 2 && isInitial" data-vv-scope="step-2"> <div v-if="step === 2 && isInitial" data-vv-scope="step-2">
<h1>Step Two: Recommended Elements</h1> <h1>Step Two: Recommended Elements</h1>
<fieldset id="fieldset-project"> {{-- <fieldset id="fieldset-project">
<legend>Project</legend> <legend>Project</legend>
<div class="pure-g"> <div class="pure-g">
{{-- <div class="pure-u-1 pure-u-md-1-2 pure-div">
<div class="select pure-u-23-24">
{!! Form::select( 'State', ['unpublished' => 'unpublished', 'inprogress' => 'inprogress'], null, ['id' => 'state',
'placeholder' => '-- select server state --', 'v-model' => 'dataset.state', "v-validate" => "'required'", 'data-vv-scope' => 'step-2'] ) !!}
</div>
</div> --}}
<div class="pure-u-1 pure-u-md-1-2 pure-div"> <div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('project_id', 'Project..') !!} {!! Form::label('project_id', 'Project..') !!}
<div class="select pure-u-23-24"> <div class="select pure-u-23-24">
@ -291,7 +303,7 @@
</div> </div>
</div> </div>
</fieldset> </fieldset> --}}
<fieldset-dates> <fieldset-dates>
<legend>Date(s)</legend> <legend>Date(s)</legend>
@ -301,26 +313,7 @@
=> 'pure-u-23-24', 'v-model' => 'dataset.embargo_date', 'data-vv-scope' => 'step-2']) !!} => 'pure-u-23-24', 'v-model' => 'dataset.embargo_date', 'data-vv-scope' => 'step-2']) !!}
<small id="projectHelp" class="pure-form-message-inline">EmbargoDate is optional</small> <small id="projectHelp" class="pure-form-message-inline">EmbargoDate is optional</small>
</div> </div>
</fieldset-dates> </fieldset-dates>
<fieldset id="fieldset-contributors">
<legend>Contributors</legend>
<div class="pure-g">
<div class="pure-u-1 pure-u-md-1-2 pure-div">
<my-autocomplete title="searching active person table" @person="onAddContributor"></my-autocomplete>
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-div">
<div class="pure-control-group checkboxlist">
<label v-for="(contributor, index) in dataset.contributors" :for="contributor.id" class="pure-checkbox">
<input type="checkbox" name="contributors" v-bind:value="contributor.id" v-model="dataset.checkedContributors" class="form-check-input" data-vv-scope="step-2">
@{{ contributor.full_name }}
</label>
<br />
{{-- <span>Checked Contributors: @{{ dataset.checkedContributors }}</span> --}}
</div>
</div>
</div>
</fieldset>
<fieldset id="fieldset-geolocation"> <fieldset id="fieldset-geolocation">
<legend>Geo Location</legend> <legend>Geo Location</legend>
@ -328,23 +321,28 @@
<div class="pure-u-1 pure-u-md-1 pure-u-lg-1 pure-div"> <div class="pure-u-1 pure-u-md-1 pure-u-lg-1 pure-div">
<locations-map v-bind:geolocation="dataset.coverage"></locations-map> <locations-map v-bind:geolocation="dataset.coverage"></locations-map>
</div> </div>
<div class="pure-u-1 pure-u-md-1-2 pure-div"> {{-- <div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('xmin', 'xmin: ') !!} {!! Form::label('xmin', 'xmin: ') !!}
{!! Form::text('xmin', null, ['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.xmin', 'readonly']) !!} {!! Form::text('xmin', null, [
'class' => 'pure-u-23-24',
'v-model' => 'dataset.coverage.xmin',
"v-validate" => "'decimal'",
'data-vv-scope' => 'step-2'
]) !!}
</div> </div>
<div class="pure-u-1 pure-u-md-1-2 pure-div"> <div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('ymin', 'ymin: ') !!} {!! Form::label('ymin', 'ymin: ') !!}
{!! Form::text('ymin', null, ['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.ymin', 'readonly']) !!} {!! Form::text('ymin', null, ['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.ymin', 'data-vv-scope' => 'step-2']) !!}
</div> </div>
<div class="pure-u-1 pure-u-md-1-2 pure-div"> <div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('xmax', 'xmax: ') !!} {!! Form::label('xmax', 'xmax: ') !!}
{!! Form::text('xmax', null, ['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.xmax', 'readonly']) !!} {!! Form::text('xmax', null, ['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.xmax', 'data-vv-scope' => 'step-2']) !!}
</div> </div>
<div class="pure-u-1 pure-u-md-1-2 pure-div"> <div class="pure-u-1 pure-u-md-1-2 pure-div">
{!! Form::label('ymax', 'ymax: ') !!} {!! Form::label('ymax', 'ymax: ') !!}
{!! Form::text('ymax', null, ['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.ymax', 'readonly']) !!} {!! Form::text('ymax', null, ['class' => 'pure-u-23-24', 'v-model' => 'dataset.coverage.ymax', 'data-vv-scope' => 'step-2']) !!}
</div> </div> --}}
</div> </div>
</fieldset> </fieldset>
@ -356,11 +354,11 @@
<div class="pure-u-1 pure-u-md-1"> <div class="pure-u-1 pure-u-md-1">
<label for="elevation-option-one" class="pure-radio"> <label for="elevation-option-one" class="pure-radio">
<input id="elevation-option-one" type="radio" v-model="elevation" value="absolut"> <input id="elevation-option-one" type="radio" v-model="elevation" value="absolut">
absolut elevation absolut elevation (m)
</label> </label>
<label for="elevation-option-two" class="pure-radio"> <label for="elevation-option-two" class="pure-radio">
<input id="elevation-option-two" type="radio" v-model="elevation" value="range"> <input id="elevation-option-two" type="radio" v-model="elevation" value="range">
elevation range elevation range (m)
</label> </label>
<label for="elevation-option-three" class="pure-radio"> <label for="elevation-option-three" class="pure-radio">
<input id="elevation-option-three" type="radio" v-model="elevation" value="no_elevation"> <input id="elevation-option-three" type="radio" v-model="elevation" value="no_elevation">
@ -388,11 +386,11 @@
<div class="pure-u-1 pure-u-md-1"> <div class="pure-u-1 pure-u-md-1">
<label for="depth-option-one" class="pure-radio"> <label for="depth-option-one" class="pure-radio">
<input id="depth-option-one" type="radio" v-model="depth" value="absolut"> <input id="depth-option-one" type="radio" v-model="depth" value="absolut">
absolut depth absolut depth (m)
</label> </label>
<label for="depth-option-two" class="pure-radio"> <label for="depth-option-two" class="pure-radio">
<input id="depth-option-two" type="radio" v-model="depth" value="range"> <input id="depth-option-two" type="radio" v-model="depth" value="range">
depth range depth range (m)
</label> </label>
<label for="depth-option-three" class="pure-radio"> <label for="depth-option-three" class="pure-radio">
<input id="depth-option-three" type="radio" v-model="depth" value="no_depth"> <input id="depth-option-three" type="radio" v-model="depth" value="no_depth">
@ -435,9 +433,10 @@
<div v-show="time === 'absolut'" class="pure-u-1 pure-u-md-1"> <div v-show="time === 'absolut'" class="pure-u-1 pure-u-md-1">
{!! Form::label('time_absolut', 'time absolut: ') !!} {!! Form::label('time_absolut', 'time absolut: ') !!}
{!! Form::date('time_absolut', null, ['class' => 'pure-u-23-24', {!! Form::datetimelocal('time_absolut', null, ['class' => 'pure-u-23-24', 'placeholder' => 'dd.MM.yyyy HH:mm:ss',
'v-model' => 'dataset.coverage.time_absolut', 'data-vv-scope' => 'step-2', 'v-model' => 'dataset.coverage.time_absolut', 'data-vv-scope' => 'step-2', 'step' => 1,
"v-validate" => "this.isTimeAbsolut ? 'required' : '' " ]) !!} "v-validate" => "this.isTimeAbsolut ? 'required|date_format:dd.MM.yyyy HH:mm:ss' : '' " ]) !!}
{{-- <datetime name="time_absolut" format="MM-DD-YYYY H:i:s" width="300px" v-model="dataset.coverage.time_absolut"></datetime> --}}
</div> </div>
<div v-show="time === 'range'" class="pure-u-1 pure-u-md-1"> <div v-show="time === 'range'" class="pure-u-1 pure-u-md-1">
{!! Form::label('time_min', 'time min: ') !!} {!! Form::label('time_min', 'time min: ') !!}
@ -493,7 +492,8 @@
</table> </table>
</fieldset> </fieldset>
<fieldset id="fieldset-keywords">
<fieldset id="fieldset-keywords">
<legend>Dataset Keywords</legend> <legend>Dataset Keywords</legend>
<button class="pure-button button-small" @click.prevent="addKeyword()">Add Keyword</button> <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.keywords.length">
@ -501,6 +501,7 @@
<tr> <tr>
<th style="width: 20px;">Keyword</th> <th style="width: 20px;">Keyword</th>
<th>Type</th> <th>Type</th>
<th>Language</th>
<th style="width: 130px;"></th> <th style="width: 130px;"></th>
</tr> </tr>
</thead> </thead>
@ -515,15 +516,20 @@
'item.type', "v-validate" => "'required'", 'data-vv-scope' => 'step-2']) !!} 'item.type', "v-validate" => "'required'", 'data-vv-scope' => 'step-2']) !!}
</td> </td>
<td> <td>
<button class="pure-button button-small is-warning" @click.prevent="removeKeyword(index)">Remove</button> <input name="Keyword Language" readonly class="form-control" placeholder="[KEYWORD LANGUAGE]" v-model="item.language" v-validate="'required'"
data-vv-scope="step-2" />
</td> </td>
<td>
<button class="pure-button button-small is-warning" @click.prevent="removeKeyword(index)">Remove</button>
</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</fieldset> </fieldset>
<br /> <br />
<div class="pure-controls">
<div class="pure-controls">
<button @click.prevent="prev()" class="pure-button button-small"> <button @click.prevent="prev()" class="pure-button button-small">
<i class="fa fa-arrow-left"></i> <i class="fa fa-arrow-left"></i>
<span>Back</span> <span>Back</span>
@ -688,9 +694,9 @@
<p> <p>
<a href="javascript:void(0)" @click="retry()">Retry: Edit inputs</a> <a href="javascript:void(0)" @click="retry()">Retry: Edit inputs</a>
</p> </p>
<p> {{-- <p>
<a href="javascript:void(0)" @click="reset()">Start again</a> <a href="javascript:void(0)" @click="reset()">Submit new dataset</a>
</p> </p> --}}
<div v-if="serrors.length > 0"> <div v-if="serrors.length > 0">
<b>Please correct the following server error(s):</b> <b>Please correct the following server error(s):</b>
<ul class="alert validation-summary-errors"> <ul class="alert validation-summary-errors">
@ -731,6 +737,4 @@
<script type="text/javascript" src="{{ resource_path('assets\js\datasetPublish.js') }}"></script> --}} <script type="text/javascript" src="{{ resource_path('assets\js\datasetPublish.js') }}"></script> --}}
<script type="text/javascript" src="{{ asset('backend/publish/datasetPublish.js') }}"></script> <script type="text/javascript" src="{{ asset('backend/publish/datasetPublish.js') }}"></script>
@stop @stop

View File

@ -234,7 +234,7 @@
if (e.which === 8 && !$(e.target).is("input:not([type=radio]):not([type=checkbox]), textarea, [contentEditable], [contentEditable=true]")) { if (e.which === 8 && !$(e.target).is("input:not([type=radio]):not([type=checkbox]), textarea, [contentEditable], [contentEditable=true]")) {
e.preventDefault(); e.preventDefault();
} }
}); });
}); });
</script> </script>
<script type="text/javascript" src="{{ asset('backend/functions.js') }}"></script> <script type="text/javascript" src="{{ asset('backend/functions.js') }}"></script>

View File

@ -19,7 +19,7 @@ mix.js('resources/assets/js/datasetPublish.js', 'public/backend/publish')
.js('resources/assets/js/lib.js', 'public/js') .js('resources/assets/js/lib.js', 'public/js')
.js('resources/assets/js/releaseDataset.js', 'public/backend/publish') .js('resources/assets/js/releaseDataset.js', 'public/backend/publish')
.js('resources/assets/js/approveDataset.js', 'public/backend/publish') .js('resources/assets/js/approveDataset.js', 'public/backend/publish')
.js('resources/assets/js/ckeditor.js', 'public/backend/') .js('resources/assets/js/ckeditor.js', 'public/backend/')
.sass('resources/assets/sass/app1.scss', 'public/css', { implementation: require('node-sass') }) .sass('resources/assets/sass/app1.scss', 'public/css', { implementation: require('node-sass') })
// .sass('node_modules/purecss/build/pure.css', 'public/css', { implementation: require('node-sass') }) // .sass('node_modules/purecss/build/pure.css', 'public/css', { implementation: require('node-sass') })
.scripts([ .scripts([