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