@abi-software/map-side-bar 1.3.18 → 1.3.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abi-software/map-side-bar",
3
- "version": "1.3.18",
3
+ "version": "1.3.19",
4
4
  "main": "./dist/map-side-bar.common.js",
5
5
  "files": [
6
6
  "dist/*",
@@ -48,7 +48,7 @@
48
48
  <div class="view-description">{{view.description}}<i class="el-icon-warning-outline info"></i> </div>
49
49
  </span>
50
50
  <div v-if="sampleDetails[i]" v-html="samplesMatching(view.id).description" :key="i+'_2'"/>
51
- <a v-bind:key="i+'_5'" v-if="sampleDetails[i]" :href="generateFileLink(samplesMatching(view.id).path)" target="_blank">View Source</a>
51
+ <a v-bind:key="i+'_5'" v-if="sampleDetails[i]" :href="generateFileLink(samplesMatching(view.id))" target="_blank">View Source</a>
52
52
  <div :key="i" class="padding"/>
53
53
 
54
54
  <!-- Extra padding if sample details is open -->
@@ -79,6 +79,26 @@ Vue.use(Button);
79
79
  Vue.use(Select);
80
80
  Vue.use(Input);
81
81
 
82
+ const addFilesToPathIfMissing = function(path){
83
+ if (!path.includes('files')){
84
+ return 'files/' + path
85
+ } else {
86
+ return path
87
+ }
88
+ }
89
+
90
+ const convertBackslashToForwardSlash = function(path){
91
+ path = path.replaceAll('\\','/')
92
+ path = path.replaceAll('\\\\', '/')
93
+ return path
94
+ }
95
+
96
+ // const switchPathToDirectory = function(path){
97
+ // let newPath = path.split('/')
98
+ // newPath.pop()
99
+ // return newPath.join('/')
100
+ // }
101
+
82
102
 
83
103
  export default {
84
104
  name: "contextCard",
@@ -88,6 +108,7 @@ export default {
88
108
  * the required viewing.
89
109
  */
90
110
  entry: Object,
111
+ envVars: Object,
91
112
  },
92
113
  data: function () {
93
114
  return {
@@ -162,9 +183,11 @@ export default {
162
183
  .then((data) => {
163
184
  this.contextData = data
164
185
  this.loading = false
186
+ this.addDiscoverIdsToContextData()
165
187
  })
166
- .catch(() => {
188
+ .catch((err) => {
167
189
  //set defaults if we hit an error
190
+ console.error('caught error!', err)
168
191
  this.thumbnail = require('@/../assets/missing-image.svg')
169
192
  this.discoverId = undefined
170
193
  this.loading = false
@@ -192,15 +215,39 @@ export default {
192
215
  return path
193
216
  }
194
217
  path = this.removeDoubleFilesPath(path)
195
- return `${this.entry.apiLocation}s3-resource/${this.entry.discoverId}/${this.entry.version}/files/${path}`
218
+ return `${this.envVars.API_LOCATION}s3-resource/${this.entry.discoverId}/${this.entry.version}/files/${path}`
196
219
  },
197
- generateFileLink(path){
198
- return `https://sparc.science/file/${this.entry.discoverId}/${this.entry.version}?path=${encodeURI(path)}`
220
+ // This is used later when generateing links to the resource on sparc.science (see generateFileLink)
221
+ addDiscoverIdsToContextData(){
222
+ this.contextData.samples.forEach((sample, i)=>{
223
+ if (sample && sample.doi && sample.doi !== ""){
224
+ fetch(`${this.envVars.PENNSIEVE_API_LOCATION}/discover/datasets/doi/${this.splitDoiFromUrl(sample.doi)}`)
225
+ .then((response) => response.json())
226
+ .then((data) => {
227
+ this.contextData.samples[i].discoverId = data.id
228
+ this.contextData.samples[i].version = data.version
229
+ })
230
+ } else {
231
+ this.contextData.samples[i].discoverId = this.entry.discoverId
232
+ this.contextData.samples[i].version = this.entry.version
233
+ }
234
+ })
235
+ },
236
+ processPathForUrl(path){
237
+ path = convertBackslashToForwardSlash(path)
238
+ path = addFilesToPathIfMissing(path)
239
+ return encodeURI(path)
240
+ },
241
+ splitDoiFromUrl(url){
242
+ return url.split('https://doi.org/').pop()
243
+ },
244
+ generateFileLink(sample){
245
+ return `https://sparc.science/file/${sample.discoverId}/${sample.version}?path=${this.processPathForUrl(sample.path)}`
199
246
 
200
247
  },
201
248
  openViewFile: function(view){
202
249
  // note that we assume that the view file is in the same directory as the scaffold (viewUrls take relative paths)
203
- this.entry.viewUrl = `${this.entry.apiLocation}s3-resource/${this.entry.discoverId}/${this.entry.version}/${view.path}`
250
+ this.entry.viewUrl = `${this.envVars.API_LOCATION}s3-resource/${this.entry.discoverId}/${this.entry.version}/${view.path}`
204
251
  this.entry.type = 'Scaffold View'
205
252
  EventBus.$emit("PopoverActionClick", this.entry)
206
253
  }
@@ -237,7 +284,7 @@ export default {
237
284
 
238
285
  .view-image {
239
286
  width: 34px;
240
- height: auto;
287
+ height: 34px;
241
288
  flex: 1;
242
289
  margin-right: 4px;
243
290
  }
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <el-card :body-style="bodyStyle" class="content-card">
3
3
  <div slot="header" class="header">
4
- <context-card v-if="contextCardEntry && contextCardEnabled" :entry="contextCardEntry" />
4
+ <context-card v-if="contextCardEntry && contextCardEnabled" :entry="contextCardEntry" :envVars="envVars"/>
5
5
  <el-input
6
6
  class="search-input"
7
7
  placeholder="Search"
@@ -0,0 +1,27 @@
1
+ {
2
+ "description": "Mean luminal pressure (represented by a color field with red as high pressure and blue as low pressure) recorded from the proximal, transverse and distal sections of the pig colon are mapped on the scaffold. \n\nBaseline data was collected for 30min, followed by 15min of stimulation and 30min of post-stimulation.",
3
+ "heading": "Direct proximal colon stimulation",
4
+ "id": "sparc.science.context_data",
5
+ "samples": [
6
+ {
7
+ "annotation": "",
8
+ "description": "Manometry data recorded from pigs under direct proximal colon stimulation.",
9
+ "doi": "https://doi.org/10.26275/up27-ibcr",
10
+ "heading": "Proximal direct stimulation samples",
11
+ "id": "Sample 1",
12
+ "path": "derivative\\stim_proximal-colon_manometry.csv",
13
+ "view": "View 1"
14
+ }
15
+ ],
16
+ "version": "0.1.0",
17
+ "views": [
18
+ {
19
+ "annotation": "--",
20
+ "description": "Sections of pig colon scaffold with mapped manometry data where the data are collected from. ",
21
+ "id": "View 1",
22
+ "path": "colon_Layout1_view.json",
23
+ "sample": "Sample 1",
24
+ "thumbnail": "derivative\\pig_colon_main_thumbnail.jpeg"
25
+ }
26
+ ]
27
+ }