wizard for publishing: step 0
This commit is contained in:
parent
d9b26afb3f
commit
9d195c450e
|
@ -253,7 +253,7 @@ class RequestController extends Controller
|
|||
*/
|
||||
private function handleListRecords($oaiRequest)
|
||||
{
|
||||
$maxRecords = 20;//$this->_configuration->getMaxListRecords();
|
||||
$maxRecords = 30;//$this->_configuration->getMaxListRecords();
|
||||
$this->handlingOfLists($oaiRequest, $maxRecords);
|
||||
}
|
||||
|
||||
|
|
|
@ -326,36 +326,38 @@ class IndexController extends Controller
|
|||
$licenses = $request->input('licenses');
|
||||
$dataset->licenses()->sync($licenses);
|
||||
|
||||
$data_to_sync = [];
|
||||
//store authors
|
||||
if (isset($data['authors'])) {
|
||||
$data_to_sync = [];
|
||||
//$data_to_sync = [];
|
||||
foreach ($request->get('authors') as $key => $person_id) {
|
||||
$pivot_data = ['role' => 'author', 'sort_order' => $key + 1];
|
||||
// if ($galery_id == $request->get('mainPicture')) $pivot_data = ['main' => 1];
|
||||
$data_to_sync[$person_id] = $pivot_data;
|
||||
}
|
||||
$dataset->persons()->sync($data_to_sync);
|
||||
//$dataset->persons()->sync($data_to_sync);
|
||||
}
|
||||
|
||||
//store contributors
|
||||
if (isset($data['contributors'])) {
|
||||
$data_to_sync = [];
|
||||
//$data_to_sync = [];
|
||||
foreach ($request->get('contributors') as $key => $contributor_id) {
|
||||
$pivot_data = ['role' => 'contributor', 'sort_order' => $key + 1];
|
||||
$data_to_sync[$contributor_id] = $pivot_data;
|
||||
}
|
||||
$dataset->persons()->sync($data_to_sync);
|
||||
//$dataset->persons()->sync($data_to_sync);
|
||||
}
|
||||
|
||||
//store submitters
|
||||
if (isset($data['submitters'])) {
|
||||
$data_to_sync = [];
|
||||
//$data_to_sync = [];
|
||||
foreach ($request->get('submitters') as $key => $submitter_id) {
|
||||
$pivot_data = ['role' => 'submitter', 'sort_order' => $key + 1];
|
||||
$data_to_sync[$submitter_id] = $pivot_data;
|
||||
}
|
||||
$dataset->persons()->sync($data_to_sync);
|
||||
//$dataset->persons()->sync($data_to_sync);
|
||||
}
|
||||
$dataset->persons()->sync($data_to_sync);
|
||||
|
||||
|
||||
//save main title:
|
||||
|
|
|
@ -206,7 +206,7 @@ class QueryBuilder
|
|||
$query = new SolrSearchQuery(SolrSearchQuery::ALL_DOCS);
|
||||
$query->setStart("0");//$input['start']);
|
||||
//$query->setRows($input['rows']);
|
||||
$query->setRows("10");
|
||||
$query->setRows("100");
|
||||
$query->setSortField($input['sortField']);
|
||||
$query->setSortOrder($input['sortOrder']);
|
||||
|
||||
|
|
|
@ -22,12 +22,12 @@ trait DatasetExtension
|
|||
protected $externalFields = array(
|
||||
'TitleMain' => array(
|
||||
'model' => Title::class,
|
||||
'options' => array('type' => ['main', 'alternative', 'subtitle', 'other']),
|
||||
'options' => array('type' => ['main', 'alternative', 'sub', 'translated', 'other']),
|
||||
'fetch' => 'eager'
|
||||
),
|
||||
'TitleAbstract' => array(
|
||||
'model' => Description::class,
|
||||
'options' => array('type' => ['abstract', 'methods']),
|
||||
'options' => array('type' => ['abstract', 'methods', 'technical_info', 'series_information', 'other']),
|
||||
'fetch' => 'eager'
|
||||
),
|
||||
'Licence' => array(
|
||||
|
|
12
composer.lock
generated
12
composer.lock
generated
|
@ -4444,16 +4444,16 @@
|
|||
},
|
||||
{
|
||||
"name": "squizlabs/php_codesniffer",
|
||||
"version": "3.4.0",
|
||||
"version": "3.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
||||
"reference": "379deb987e26c7cd103a7b387aea178baec96e48"
|
||||
"reference": "5b4333b4010625d29580eb4a41f1e53251be6baa"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/379deb987e26c7cd103a7b387aea178baec96e48",
|
||||
"reference": "379deb987e26c7cd103a7b387aea178baec96e48",
|
||||
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5b4333b4010625d29580eb4a41f1e53251be6baa",
|
||||
"reference": "5b4333b4010625d29580eb4a41f1e53251be6baa",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -4486,12 +4486,12 @@
|
|||
}
|
||||
],
|
||||
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
|
||||
"homepage": "http://www.squizlabs.com/php-codesniffer",
|
||||
"homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
|
||||
"keywords": [
|
||||
"phpcs",
|
||||
"standards"
|
||||
],
|
||||
"time": "2018-12-19T23:57:18+00:00"
|
||||
"time": "2019-03-19T03:22:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "theseer/tokenizer",
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -58,8 +58,8 @@
|
|||
<!-- year -->
|
||||
<xsl:variable name="year">
|
||||
<xsl:choose>
|
||||
<xsl:when test="/Opus/Rdr_Dataset/PublishedDate/@Year != ''">
|
||||
<xsl:value-of select="/Opus/Rdr_Dataset/PublishedDate/@Year" />
|
||||
<xsl:when test="/Opus/Rdr_Dataset/ServerDatePublished/@Year != ''">
|
||||
<xsl:value-of select="/Opus/Rdr_Dataset/ServerDatePublished/@Year" />
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="/Opus/Rdr_Dataset/@PublishedYear" />
|
||||
|
|
|
@ -10,7 +10,7 @@ function initialState() {
|
|||
project_id: "",
|
||||
|
||||
creating_corporation: "GBA Repository",
|
||||
language: "en",
|
||||
language: "",
|
||||
embargo_date: "",
|
||||
belongs_to_bibliography: 0,
|
||||
|
||||
|
@ -55,6 +55,12 @@ const dataset = new Vue({
|
|||
// };
|
||||
// this.reset(json);
|
||||
},
|
||||
watch: {
|
||||
language(val) {
|
||||
this.title_main.language = val;
|
||||
this.abstract_main.language = val;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
reset() {
|
||||
Object.assign(this.$data, initialState());
|
||||
|
|
|
@ -59,7 +59,7 @@ const app = new Vue({
|
|||
|
||||
isModalVisible: false,
|
||||
|
||||
step: 1,
|
||||
step: 0,
|
||||
dataset: dataset
|
||||
// dataset: {
|
||||
// type: '',
|
||||
|
@ -101,6 +101,17 @@ const app = new Vue({
|
|||
return value || options.some((option) => option[testProp]);
|
||||
}
|
||||
});
|
||||
// add the required rule
|
||||
VeeValidate.Validator.extend('translatedLanguage', {
|
||||
getMessage: field => 'The translated title must be in a language other than than the dataset language.',
|
||||
validate: (value, [mainLanguage, type]) => {
|
||||
if (type == "translated") {
|
||||
return value !== mainLanguage;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
});
|
||||
},
|
||||
mounted() {
|
||||
//this.step = 2;
|
||||
|
@ -134,7 +145,7 @@ const app = new Vue({
|
|||
this.uploadedFiles = [];
|
||||
this.uploadError = null;
|
||||
this.dataset.reset();//reset methods will trigger property changed.
|
||||
this.step = 1;
|
||||
this.step = 0;
|
||||
},
|
||||
retry() {
|
||||
// reset form to initial state
|
||||
|
|
|
@ -16,6 +16,38 @@
|
|||
<main class="steps pure-form" enctype="multipart/form-data">
|
||||
{{ csrf_field() }}
|
||||
|
||||
<div v-if="step === 0 && isInitial" data-vv-scope="step-0">
|
||||
|
||||
<fieldset id="fieldset-language">
|
||||
<legend>Dataset Language</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' => 'dataset.language', "v-validate"
|
||||
=> "'required'", 'data-vv-scope' => 'step-0']) !!}
|
||||
</div>
|
||||
<small id="languageHelp" class="pure-form-message-inline">select dataset main language</small>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<br />
|
||||
<div class="pure-controls">
|
||||
<button @click.prevent="next('step-0')" class="pure-button button-small" :disabled="errors.any()">
|
||||
<i class="fa fa-arrow-right"></i>
|
||||
<span>Continue</span>
|
||||
</button>
|
||||
</div>
|
||||
<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>
|
||||
|
||||
</div>
|
||||
|
||||
<div v-if="step === 1 && isInitial" data-vv-scope="step-1">
|
||||
<h1>Step One: Mandatory Elements</h1>
|
||||
|
||||
|
@ -51,10 +83,11 @@
|
|||
</div>
|
||||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
{!! Form::label('TitleLanguage', 'Title Language..') !!}
|
||||
<div class="select pure-u-23-24">
|
||||
{{-- <div class="select pure-u-23-24">
|
||||
{!! Form::select('TitleMain[Language]', $languages, null, ['placeholder' => '--no language--', 'v-model' => 'dataset.title_main.language',
|
||||
"v-validate" => "'required'", "data-vv-as" => "Title Language", 'data-vv-scope' => 'step-1']) !!}
|
||||
</div>
|
||||
</div> --}}
|
||||
{!! Form::text('TitleMain[Language]', null, ['class' => 'pure-u-23-24', 'v-model' => 'dataset.title_main.language', 'readonly']) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
|
@ -81,7 +114,9 @@
|
|||
</td>
|
||||
<td>
|
||||
{!! Form::select('Title[Language]', $languages, null,
|
||||
['placeholder' => '[language]', 'v-model' => 'item.language', "v-validate" => "'required'", 'data-vv-scope' => 'step-1']) !!}
|
||||
['placeholder' => '[language]', 'v-model' => 'item.language',
|
||||
"v-validate" => "{required: true, translatedLanguage: [dataset.language, item.type]}",
|
||||
'data-vv-scope' => 'step-1']) !!}
|
||||
</td>
|
||||
<td>
|
||||
<button class="pure-button button-small is-warning" @click.prevent="removeTitle(index)">-</button>
|
||||
|
@ -102,10 +137,11 @@
|
|||
</div>
|
||||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
{!! Form::label('AbstractLanguage', 'Abstract Language..') !!}
|
||||
<div class="select pure-u-23-24">
|
||||
{{-- <div class="select pure-u-23-24">
|
||||
{!! Form::select('TitleAbstract[Language]', $languages, null, ['placeholder' => '--no language--', 'v-model' => 'dataset.abstract_main.language',
|
||||
"v-validate" => "'required'", "data-vv-as" => "Abstract Language", 'data-vv-scope' => 'step-1']) !!}
|
||||
</div>
|
||||
</div> --}}
|
||||
{!! Form::text('TitleAbstract[Language]', null, ['class' => 'pure-u-23-24', 'v-model' => 'dataset.abstract_main.language', 'readonly']) !!}
|
||||
</div>
|
||||
<div class="pure-u-1 pure-u-md-1-2 pure-div">
|
||||
{!! Form::label('AddtionalDescription', 'Add additional descriptions(s) ') !!}
|
||||
|
@ -211,10 +247,14 @@
|
|||
|
||||
<br />
|
||||
<div class="pure-controls">
|
||||
<button @click.prevent="next('step-1')" class="pure-button button-small" :disabled="errors.any()">
|
||||
<i class="fa fa-arrow-right"></i>
|
||||
<span>Continue</span>
|
||||
</button>
|
||||
<button @click.prevent="prev()" class="pure-button button-small">
|
||||
<i class="fa fa-arrow-left"></i>
|
||||
<span>Back</span>
|
||||
</button>
|
||||
<button @click.prevent="next('step-1')" class="pure-button button-small" :disabled="errors.any()">
|
||||
<i class="fa fa-arrow-right"></i>
|
||||
<span>Continue</span>
|
||||
</button>
|
||||
</div>
|
||||
<div v-if="errors.items.length > 0">
|
||||
<b>Please correct the following error(s):</b>
|
||||
|
@ -372,16 +412,16 @@
|
|||
</fieldset>
|
||||
|
||||
<br />
|
||||
<div class="pure-controls">
|
||||
<div class="pure-controls">
|
||||
<button @click.prevent="prev()" class="pure-button button-small">
|
||||
<i class="fa fa-arrow-left"></i>
|
||||
<span>Back</span>
|
||||
</button>
|
||||
<i class="fa fa-arrow-left"></i>
|
||||
<span>Back</span>
|
||||
</button>
|
||||
|
||||
<button @click.prevent="next('step-2')" class="pure-button button-small" v-bind:disabled="errors.any()">
|
||||
<i class="fa fa-arrow-right"></i>
|
||||
<span>Continue</span>
|
||||
</button>
|
||||
<button @click.prevent="next('step-2')" class="pure-button button-small" v-bind:disabled="errors.any()">
|
||||
<i class="fa fa-arrow-right"></i>
|
||||
<span>Continue</span>
|
||||
</button>
|
||||
</div>
|
||||
<div v-if="errors.items.length > 0">
|
||||
<b>Please correct the following error(s):</b>
|
||||
|
@ -394,19 +434,7 @@
|
|||
<div v-if="step === 3 && isInitial" data-vv-scope="step-3">
|
||||
<h1>Step 3: Other Elements</h1>
|
||||
|
||||
<fieldset id="fieldset-general">
|
||||
<legend>Language</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' => 'dataset.language', "v-validate" => "'required'", 'data-vv-scope' => 'step-3']) !!}
|
||||
</div>
|
||||
<small id="languageHelp" class="pure-form-message-inline">language is optional</small>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset id="fieldset-licenses">
|
||||
<legend>Rights List</legend>
|
||||
|
|
Loading…
Reference in New Issue
Block a user