diff --git a/src/App.vue b/src/App.vue index 0a851179d5dd8936b748526f719dec2b1517bc96..363c6c9831e3acac2ebdc1d1c5bc87df5c55301b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -266,7 +266,7 @@ export default { sections: [] }, members: [], - pid: "o:588493", + pid: "o:589027", piddoc: {}, collection: "", sampleCollection: "", diff --git a/src/components/display/pharma_display/PhDJsonld.vue b/src/components/display/pharma_display/PhDJsonld.vue index 8a5fcda5ba92fae8ce4c655e87490adcc04bfa9a..a0a806373e2fa2a21bcbedba49d854a2b265ba92 100644 --- a/src/components/display/pharma_display/PhDJsonld.vue +++ b/src/components/display/pharma_display/PhDJsonld.vue @@ -311,6 +311,7 @@ </template> <template v-for="(categ,index) in pharmaStructure"> <v-card v-if="categ.fields.length>0" :key="index+categ.category"> + <v-toolbar dense flat> <v-layout> <v-toolbar-title class="font-weight-light">{{categ.label}}</v-toolbar-title> @@ -351,7 +352,6 @@ </v-card> <v-card v-if="categ.subcategory" :key="index+categ.label"> - <v-toolbar dense flat> <v-layout> @@ -363,7 +363,7 @@ <v-card v-for="l in categ.subcategory" :key="l.category+'field'"> <v-layout v-if="l"> - + <v-flex xs1 class="subheading"> <a :href="l.id" target="_blank">{{l.category}}</a> @@ -522,6 +522,7 @@ export default { jsonStructured[result].subcategory = [ { category: formFieldsFiltered[j].subcategory[0], + id: formFieldsFiltered[j].infoRef, fields: jsonTypeArray } ]; diff --git a/src/components/input/PhSubmit.vue b/src/components/input/PhSubmit.vue index 656fd2a2dc51c85fac178758c76c6b05b75dddac..84190b10fa9c2d9885dd140ea153d8f8b3d6d556 100644 --- a/src/components/input/PhSubmit.vue +++ b/src/components/input/PhSubmit.vue @@ -361,7 +361,6 @@ export default { }, checkWarnings: function() { - console.log("in check warning", this.s); var self = this; let missingF = []; //this.submit(); @@ -372,8 +371,19 @@ export default { for (var f in fields) { if (fields[f].warning === true) { w = true; - console.log("warning", fields[f].label); - missingF.push(fields[f].label); + + missingF.push(" " + fields[f].label); + } + if (fields[f].licenseWarning) { + var nwf = false; + // = 0; i < this.form.sections.length; i++ + for (var wf = 0; wf < fields[f].licenseWarning.length; wf++) { + if (fields[f].licenseWarning[wf] == true) { + var new_wf = wf + 1; + missingF.push(" Missing licenses for file: " + new_wf); + w = true; + } + } } } } @@ -381,7 +391,7 @@ export default { let str = missingF.toString(); self.$store.commit("setAlerts", [ - { type: "danger", msg: "Missing required fields: " + str } + { type: "danger", msg: "Missing required fields:" + str } ]); self.loading = false; self.$vuetify.goTo(0); diff --git a/src/components/input/pharma-input-fields/PISelect.vue b/src/components/input/pharma-input-fields/PISelect.vue index 381199f72cee2ce7b1fcb1620bcfa4d071fa994f..bf12852752828ba255fcc37356c970ba3ba49e44 100644 --- a/src/components/input/pharma-input-fields/PISelect.vue +++ b/src/components/input/pharma-input-fields/PISelect.vue @@ -2,11 +2,12 @@ <v-form lazy-validation ref="form" v-model="valid"> <v-layout row> <v-flex xs8> + <v-autocomplete :value="getTerm(vocabulary, value)" :required="required" v-on:input="$emit('input', $event);validate(); $emit('validation', validationWarning)" - :rules="required ? [ v => !!v || 'Required'] : []" + :rules="required ? [ v => !!v|| 'Required'] : []" :items="vocabularies[vocabulary].terms" :loading="loading" :filter="autocompleteFilter" @@ -94,12 +95,18 @@ export default { if (this.$refs.form.validate()) { this.validationWarning = false; } else { + console.log("here"); this.validationWarning = true; } } else { + console.log("here 2", this.formValidation); this.validationWarning = false; } - // console.log("validationWarning", this.validationWarningI); + console.log( + "validationWarning", + this.$refs.form.validate(), + this.validationWarning + ); } }, mounted: function() { diff --git a/src/components/input/pharma-input-fields/PhFiles.vue b/src/components/input/pharma-input-fields/PhFiles.vue index f90a732970bb82958069f89ea0a46a43e3051c54..6da04079869dbc098176b4edaa4a1e1688aabbe1 100644 --- a/src/components/input/pharma-input-fields/PhFiles.vue +++ b/src/components/input/pharma-input-fields/PhFiles.vue @@ -64,16 +64,20 @@ ></v-text-field> </v-flex> <v-flex xs12> + <v-layout row wrap justify-end> <v-flex xs4> + <p-i-select vocabulary="licenses" label="License" :value="itemsLicense[i-1]" :warning="true" + :required="true" + :formValidation="true" definition="The value will indicate the copyright, usage and access rights that apply to this digital representation." v-on:input="setArray(itemsLicense,i-1,selectId($event));$emit('input-license', itemsLicense)" - v-on:validation="setArray(itemsWarning,i-1,$event); $emit('input-warning', itemsWarning)" + v-on:validation="setMytry($event),setArray(itemsWarning,i-1,$event); $emit('input-warning', itemsWarning)" ></p-i-select> </v-flex> @@ -165,6 +169,7 @@ export default { }, data() { return { + mytry: false, items: [], //items: [0], //dragging: false, @@ -182,11 +187,15 @@ export default { //errorMsg: '', loaderVisible: true, dragging: false, - FileExtfreefield: [] + FileExtfreefield: [], + licenseInit: "http://rightsstatements.org/vocab/InC/1.0/" }; }, methods: { + setMytry: function(e) { + this.mytry = e; + }, alert: function(e) { console.log("alert", e); }, diff --git a/src/components/input/pharma-input-fields/PhInputForm.vue b/src/components/input/pharma-input-fields/PhInputForm.vue index 61de03fee46f7b755e8ffd0c1a8be2418b0e7130..74ad9bd1c2ef4d33a3e00fd0d8e418cddf001eaf 100644 --- a/src/components/input/pharma-input-fields/PhInputForm.vue +++ b/src/components/input/pharma-input-fields/PhInputForm.vue @@ -110,6 +110,7 @@ <v-layout v-for="(f) in s[index].fields" :key="f.id" row wrap> <v-flex v-if="f.component == 'files'"> + <ph-files v-bind.sync="f" v-on:input-numberFiles="f.nfile=$event" @@ -122,6 +123,7 @@ v-on:input-warning="f.licenseWarning=$event" v-on:validation="f.warning=$event" ></ph-files> + </v-flex> </v-layout> </v-card-text> diff --git a/src/utils/fields.js b/src/utils/fields.js index 11484f95317d10a687ced335b41b34f91211ca96..2d9b8c70feb28d80b39addb115dbcc6cf67c4a29 100644 --- a/src/utils/fields.js +++ b/src/utils/fields.js @@ -754,7 +754,9 @@ const fields = [{ topId: "UBERON_0001062", freefield: true, category: ["anatomicalCategory"], + subcategory: ["Anatomical entity"], description: "Anatomical entity, cross species", + infoRef: "http://purl.bioontology.org/ontology/", info: "anatomical entity UBERON:0001062 Biological entity that is either an individual member of a biological species or constitutes the structural organization of an individual member of a biological species. [ FMA:62955 http://orcid.org/0000-0001-9114-8737 ]" }, { @@ -776,7 +778,9 @@ const fields = [{ topId: "PO_0025131", freefield: true, category: ["anatomicalCategory"], + subcategory: ["Plant anatomical entity"], description: "Plant anatomical entity", + infoRef: "http://purl.bioontology.org/ontology/", info: "plant anatomical entity PO:0025131 An anatomical entity that is or was part of a plant. [ CARO:0000000 POC:curators ]" }, { @@ -798,7 +802,9 @@ const fields = [{ topId: "FAO_0000001", freefield: true, category: ["anatomicalCategory"], + subcategory: ["Fungal structure"], description: "Anatomical entity, fungi", + info: "The parts of fungi.", infoRef: "http://purl.bioontology.org/ontology/MESH/D056229" }, @@ -821,6 +827,7 @@ const fields = [{ topId: "OMIT_0026581", freefield: true, category: ["anatomicalCategory"], + subcategory: ["Bacterial structures"], description: "Anatomical entity, bacteria", info: "The parts of bacteria.", infoRef: "http://purl.bioontology.org/ontology/MESH/D056226" @@ -844,6 +851,7 @@ const fields = [{ topId: "OMIT_0026580", freefield: true, category: ["anatomicalCategory"], + subcategory: ["Viral structures"], description: "Viral structures", info: "The parts of bacteria.", infoRef: "" @@ -865,6 +873,7 @@ const fields = [{ ontClass: "GO_0003674", topId: "GO_0003674", category: ["goTerm"], + subcategory: ["GO Molecular Function"], freefield: true, description: "GO Molecular Function:", infoRef: "http://purl.obolibrary.org/obo/GO_0003674", @@ -887,6 +896,7 @@ const fields = [{ ontClass: "GO_0008150", topId: "GO_0008150", category: ["goTerm"], + subcategory: ["GO Biological Process"], description: "GO Biological Process:", freefield: true, infoRef: "http://purl.obolibrary.org/obo/GO_0003674", @@ -909,6 +919,7 @@ const fields = [{ ontClass: "GO_0005575", topId: "GO_0005575", category: ["goTerm"], + subcategory: ["GO Cellular Component"], freefield: true, description: "GO Cellular Component:", infoRef: "http://purl.obolibrary.org/obo/GO_0005575", @@ -932,6 +943,7 @@ const fields = [{ freefield: true, inchi: true, category: ["chebi"], + subcategory: ["Chemical Entities"], info: "A chemical entity is a physical entity of interest in chemistry including molecular entities, parts thereof, and chemical substances. ", description: "Chemical entity" }, @@ -994,6 +1006,7 @@ const fields = [{ info: "A role is particular behaviour which a material entity may exhibit.", freefield: true, category: ["chebi"], + subcategory: ["Role"], description: "Role" }, { @@ -1012,6 +1025,7 @@ const fields = [{ ontClass: "CHEBI_36342", topId: "CHEBI_36342", category: ["chebi"], + subcategory: ["Subatomic particle"], freefield: true, infoRef: "http://purl.obolibrary.org/obo/CHEBI_36342", info: "A particle smaller than an atom.",