Skip to content

Commit

Permalink
Use jskos-tools and remove JSKOS functions from util
Browse files Browse the repository at this point in the history
  • Loading branch information
stefandesu committed Aug 21, 2018
1 parent f8fc66b commit 8872d70
Show file tree
Hide file tree
Showing 18 changed files with 296 additions and 578 deletions.
536 changes: 238 additions & 298 deletions package-lock.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions package.json
Expand Up @@ -34,6 +34,7 @@
"axios": "^0.18.0",
"bootstrap-vue": "^2.0.0-rc.11",
"jquery": "^3.3.1",
"jskos-tools": "^0.1.1",
"localforage": "^1.7.2",
"lodash": "^4.17.10",
"simple-sha1": "^2.1.1",
Expand Down
5 changes: 3 additions & 2 deletions src/api.js
Expand Up @@ -16,6 +16,7 @@ import axios from "axios"
import localforage from "localforage"
import config from "./config"
import util from "./util"
import jskos from "jskos-tools"

/** Property sets */
const minimumProperties = "-"
Expand Down Expand Up @@ -204,7 +205,7 @@ function getMappings(params) {
// Add mapping type if not available
mapping.type = mapping.type || [util.defaultMappingType.uri]
// Add JSKOS mapping identifiers
mapping = util.addMappingIdentifiers(mapping)
mapping = jskos.addMappingIdentifiers(mapping)
mappings.push(mapping)
}
}
Expand Down Expand Up @@ -250,7 +251,7 @@ function saveMapping(mapping) {
}

return getLocalMappings().then(mappings => {
mapping = util.addMappingIdentifiers(mapping)
mapping = jskos.addMappingIdentifiers(mapping)
// Override local mappings with same members
// FIXME: This is only temporary to demonstrate local saving of mappings. The actual solution to this problem may be way more complicated.
mappings = mappings.filter(m => {
Expand Down
4 changes: 2 additions & 2 deletions src/components/ConceptDetail.vue
Expand Up @@ -254,7 +254,7 @@ export default {
watch: {
item(newItem, oldItem) {
// Refresh component if item changed
if(!this.$util.compareConcepts(newItem, oldItem)) {
if(!this.$jskos.compare(newItem, oldItem)) {
this.refresh()
}
},
Expand Down Expand Up @@ -290,7 +290,7 @@ export default {
promises.push(this.$api.getMappings(params).then(results => [results, fromTo]))
}
Promise.all(promises).then(results => {
if (!this.$util.compareConcepts(itemBefore, this.item)) {
if (!this.$jskos.compare(itemBefore, this.item)) {
// Abort if item changed in the meantime
return []
}
Expand Down
2 changes: 1 addition & 1 deletion src/components/ConceptSearch.vue
Expand Up @@ -128,7 +128,7 @@ export default {
* Clears the search field when scheme is changed.
*/
scheme: function(newValue, oldValue) {
if (!this.$util.compareSchemes(oldValue, newValue)) {
if (!this.$jskos.compare(oldValue, newValue)) {
this.searchQuery = ""
this.searchResult = []
this.isOpen = false
Expand Down
2 changes: 1 addition & 1 deletion src/components/ConceptTree.vue
Expand Up @@ -83,7 +83,7 @@ export default {
this.currentSelectedConcept = concept
this.shouldScroll = true
}
if (this.$util.isConcept(concept)) {
if (this.$jskos.isConcept(concept)) {
// Load concept's narrower
if (!concept.narrower || concept.narrower.includes(null)) {
this.loadNarrower({ object: concept })
Expand Down
4 changes: 2 additions & 2 deletions src/components/ConceptTreeItem.vue
Expand Up @@ -126,10 +126,10 @@ export default {
return _.get(this.concept, "narrower.length", 1) != 0
},
isHovered() {
return this.$util.compareConcepts(this.hoveredConcept, this.concept)
return this.$jskos.compare(this.hoveredConcept, this.concept)
},
isSelected() {
return this.$util.compareConcepts(this.selected.concept[this.isLeft], this.concept)
return this.$jskos.compare(this.selected.concept[this.isLeft], this.concept)
},
childrenLoaded() {
return !this.concept.narrower || !this.concept.narrower.includes(null)
Expand Down
12 changes: 6 additions & 6 deletions src/components/ItemDetail.vue
Expand Up @@ -109,7 +109,7 @@ export default {
},
computed: {
type() {
if (this.$util.isConcept(this.item)) {
if (this.$jskos.isConcept(this.item)) {
return "Concept"
} else {
return "Scheme"
Expand All @@ -131,12 +131,12 @@ export default {
item: function(newItem, oldItem) {
this.$el.scrollTop = 0
this.loadDetails()
if (!this.$util.compareConcepts(newItem, oldItem)) {
if (this.prevConcepts.length > 0 && this.$util.compareConcepts(newItem, _.last(this.prevConcepts))) {
if (!this.$jskos.compare(newItem, oldItem)) {
if (this.prevConcepts.length > 0 && this.$jskos.compare(newItem, _.last(this.prevConcepts))) {
// new item came from prevConcepts
this.nextConcepts.unshift(oldItem)
this.prevConcepts.pop()
} else if (this.nextConcepts.length > 0 && this.$util.compareConcepts(newItem, _.first(this.nextConcepts))) {
} else if (this.nextConcepts.length > 0 && this.$jskos.compare(newItem, _.first(this.nextConcepts))) {
// new item came from nextConcepts
if (oldItem) this.prevConcepts.push(oldItem)
this.nextConcepts.shift()
Expand Down Expand Up @@ -205,14 +205,14 @@ export default {
choosePrevious() {
if (this.prevConcepts.length) {
let object = _.last(this.prevConcepts)
object = this.$util.isScheme(object) ? null : object
object = this.$jskos.isScheme(object) ? null : object
this.setSelected("concept", this.isLeft, object)
}
},
chooseNext() {
if (this.nextConcepts.length) {
let object = _.first(this.nextConcepts)
object = this.$util.isScheme(object) ? null : object
object = this.$jskos.isScheme(object) ? null : object
this.setSelected("concept", this.isLeft, object)
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/components/ItemName.vue
Expand Up @@ -93,7 +93,7 @@ export default {
},
computed: {
isHovered() {
return this.$util.compareConcepts(this.hoveredConcept, this.item)
return this.$jskos.compare(this.hoveredConcept, this.item)
}
},
watch: {
Expand Down Expand Up @@ -142,7 +142,7 @@ Vue.component("notation-text", {
notation() {
if (this.item.notation && this.item.notation.length) {
let notation = this.item.notation[0]
if (this.$util.isScheme(this.item)) {
if (this.$jskos.isScheme(this.item)) {
return notation.toUpperCase()
}
return notation
Expand Down
8 changes: 4 additions & 4 deletions src/components/MappingBrowser.vue
Expand Up @@ -21,7 +21,7 @@
:show-text="false"
:show-tooltip="true"
:is-link="$util.canConceptBeSelected(concept, selected.scheme[true])"
:is-highlighted="$util.compareConcepts(concept, selected.concept[true])"
:is-highlighted="$jskos.compare(concept, selected.concept[true])"
@mouseover.native="hover(concept)"
@click.native="$util.canConceptBeSelected(concept, selected.scheme[true]) && setSelected('concept', true, concept)" />
</span>
Expand All @@ -36,7 +36,7 @@
:show-text="false"
:show-tooltip="true"
:is-link="$util.canConceptBeSelected(concept, selected.scheme[false])"
:is-highlighted="$util.compareConcepts(concept, selected.concept[false])"
:is-highlighted="$jskos.compare(concept, selected.concept[false])"
@mouseover.native="hover(concept)"
@click.native="$util.canConceptBeSelected(concept, selected.scheme[false]) && setSelected('concept', false, concept)" />
<br>
Expand Down Expand Up @@ -176,7 +176,7 @@ export default {
// Filter mappings depending on option
if (!this.showAll) {
// Only show if source and target schemes match with selected schemes
if(!this.$util.compareSchemes(mapping.fromScheme, this.selected.scheme[true]) || !this.$util.compareSchemes(mapping.toScheme, this.selected.scheme[false])) {
if(!this.$jskos.compare(mapping.fromScheme, this.selected.scheme[true]) || !this.$jskos.compare(mapping.toScheme, this.selected.scheme[false])) {
continue
}
}
Expand Down Expand Up @@ -286,7 +286,7 @@ export default {
},
methods: {
edit(data) {
let mapping = this.$util.deepCopy(data.item.mapping)
let mapping = this.$jskos.copyDeep(data.item.mapping)
// Make sure concept object references are in sync
mapping.from.memberSet = data.item.mapping.from.memberSet.slice()
if (mapping.to.memberSet) {
Expand Down
10 changes: 5 additions & 5 deletions src/components/MappingEditor.vue
Expand Up @@ -39,7 +39,7 @@
<item-name
:item="concept"
:is-link="$util.canConceptBeSelected(concept, isLeft ? selected.scheme[true] : selected.scheme[false])"
:is-highlighted="$util.compareConcepts(concept, isLeft ? selected.concept[true] : selected.concept[false])"
:is-highlighted="$jskos.compare(concept, isLeft ? selected.concept[true] : selected.concept[false])"
@click.native="$util.canConceptBeSelected(concept, isLeft ? selected.scheme[true] : selected.scheme[false]) && setSelected('concept', isLeft, concept)" />
<!-- Delete button for concept -->
<div
Expand Down Expand Up @@ -146,10 +146,10 @@ export default {
})
},
prepareMapping() {
let mapping = this.$util.deepCopy(this.$store.state.mapping.mapping)
mapping = this.$util.addMappingIdentifiers(mapping)
let mapping = this.$jskos.copyDeep(this.$store.state.mapping.mapping)
mapping = this.$jskos.addMappingIdentifiers(mapping)
// TODO: Reduce to only the important properties
mapping = this.$util.cleanJSKOS(mapping)
mapping = this.$jskos.clean(mapping)
return mapping
},
labelForScheme(scheme) {
Expand Down Expand Up @@ -223,7 +223,7 @@ export default {
showScheme(isLeft) {
let chosenScheme = this.selected.scheme[isLeft]
let mappingScheme = this.$store.getters["mapping/getScheme"](isLeft)
return !this.$util.compareSchemes(chosenScheme, mappingScheme)
return !this.$jskos.compare(chosenScheme, mappingScheme)
},
/**
* Opens the export modal
Expand Down
12 changes: 6 additions & 6 deletions src/components/OccurrencesBrowser.vue
Expand Up @@ -18,7 +18,7 @@
:show-text="false"
:show-tooltip="true"
:is-link="data.value && $util.canConceptBeSelected(data.value, selected.scheme[true])"
:is-highlighted="$util.compareConcepts(data.value, selected.concept[true])"
:is-highlighted="$jskos.compare(data.value, selected.concept[true])"
@click.native="data.value && $util.canConceptBeSelected(data.value, selected.scheme[true]) && setSelected('concept', true, data.value)" />
</span>
<span
Expand All @@ -29,7 +29,7 @@
:show-text="false"
:show-tooltip="true"
:is-link="data.value && $util.canConceptBeSelected(data.value, selected.scheme[false])"
:is-highlighted="$util.compareConcepts(data.value, selected.concept[false])"
:is-highlighted="$jskos.compare(data.value, selected.concept[false])"
@click.native="data.value && $util.canConceptBeSelected(data.value, selected.scheme[false]) && setSelected('concept', false, data.value)" />
</span>
<span
Expand Down Expand Up @@ -190,10 +190,10 @@ export default {
let fromTos = ["to", "from"]
let fromToMap = []
for (let member of occurrence.memberSet) {
if (this.$util.compareConcepts(member, this.selected.concept[true])) {
if (this.$jskos.compare(member, this.selected.concept[true])) {
fromToMap[member.uri] = "from"
_.pull(fromTos, "from")
} else if (this.$util.compareConcepts(member, this.selected.concept[false])) {
} else if (this.$jskos.compare(member, this.selected.concept[false])) {
fromToMap[member.uri] = "to"
_.pull(fromTos, "to")
}
Expand Down Expand Up @@ -337,7 +337,7 @@ export default {
toScheme: item.toScheme,
type: [this.$util.defaultMappingType.uri]
}
mapping = this.$util.addMappingIdentifiers(mapping)
mapping = this.$jskos.addMappingIdentifiers(mapping)
item.mapping = mapping
},
/**
Expand All @@ -353,7 +353,7 @@ export default {
isSupported(scheme) {
let supported = false
for (let supportedScheme of this.supportedSchemes) {
if (this.$util.compareSchemes(scheme, supportedScheme)) {
if (this.$jskos.compare(scheme, supportedScheme)) {
supported = true
}
}
Expand Down
4 changes: 4 additions & 0 deletions src/main.js
Expand Up @@ -26,6 +26,10 @@ store.dispatch("init")
import util from "./util"
Vue.prototype.$util = util

// Add jskos-tools, use with this.$jskos in components
import jskos from "jskos-tools"
Vue.prototype.$jskos = jskos

// Add fontawesome
// TODO: - Only import individual items, e.g.
// import { faSpinner } from '@fortawesome/free-solid-svg-icons'
Expand Down
6 changes: 3 additions & 3 deletions src/store/actions.js
@@ -1,6 +1,6 @@
import api from "../api"
import config from "../config"
import util from "../util"
import jskos from "jskos-tools"

export default {
init ({ commit, getters }) {
Expand Down Expand Up @@ -75,7 +75,7 @@ export default {
// Find and remove scheme from schemes array
let otherSchemeIndex = -1
for (let index = 0; index < schemes.length; index += 1) {
if (util.compareSchemes(scheme, schemes[index])) {
if (jskos.compare(scheme, schemes[index])) {
otherSchemeIndex = index
break
}
Expand All @@ -96,7 +96,7 @@ export default {
}
Promise.all(promises).then(() => {
// Sort schemes
util.sortSchemes(schemes)
jskos.sortSchemes(schemes)
// Commit schemes to store
commit({
type: "setSchemes",
Expand Down
9 changes: 5 additions & 4 deletions src/store/modules/mapping.js
@@ -1,4 +1,5 @@
import util from "../../util"
import jskos from "jskos-tools"
import _ from "lodash"

// TODO: - Add support for memberChoice and maybe memberList.
Expand Down Expand Up @@ -63,7 +64,7 @@ const getters = {
added: (state) => (concept, isLeft) => {
let fromTo = helpers.fromTo(isLeft)
let indexConcept = _.findIndex(state.mapping[fromTo].memberSet, c => {
return util.compareConcepts(c, concept)
return jskos.compare(c, concept)
})
return indexConcept != -1
},
Expand All @@ -77,7 +78,7 @@ const getters = {
*/
checkScheme: (state) => (scheme, isLeft) => {
let actualScheme = getters.getScheme(state)(isLeft)
return actualScheme == null ? true : util.compareSchemes(actualScheme, scheme)
return actualScheme == null ? true : jskos.compare(actualScheme, scheme)
},

/**
Expand Down Expand Up @@ -136,7 +137,7 @@ const mutations = {
remove(state, { concept, isLeft }) {
let fromTo = helpers.fromTo(isLeft)
let indexConcept = _.findIndex(state.mapping[fromTo].memberSet, c => {
return util.compareConcepts(c, concept)
return jskos.compare(c, concept)
})
if (indexConcept == -1) {
return
Expand Down Expand Up @@ -190,7 +191,7 @@ const mutations = {
},

setIdentifier(state) {
state.mapping = util.addMappingIdentifiers(state.mapping)
state.mapping = jskos.addMappingIdentifiers(state.mapping)
},

setRefresh(state, refresh) {
Expand Down

0 comments on commit 8872d70

Please sign in to comment.