diff --git a/kbase-extension/static/kbase/js/kbaseNarrative.js b/kbase-extension/static/kbase/js/kbaseNarrative.js
index db7addf7c0..17592941f8 100644
--- a/kbase-extension/static/kbase/js/kbaseNarrative.js
+++ b/kbase-extension/static/kbase/js/kbaseNarrative.js
@@ -333,7 +333,7 @@ define([
});
shareDialog.getElement().one('shown.bs.modal', function () {
shareWidget = new KBaseNarrativeSharePanel(sharePanel.empty(), {
- ws_name_or_id: this.getWorkspaceName()
+ wsId: this.workspaceId
});
}.bind(this));
$('#kb-share-btn').click(function () {
diff --git a/kbase-extension/static/kbase/js/widgets/narrative_core/kbaseNarrativeManagePanel.js b/kbase-extension/static/kbase/js/widgets/narrative_core/kbaseNarrativeManagePanel.js
index 16c9af31b5..1c84a534bc 100644
--- a/kbase-extension/static/kbase/js/widgets/narrative_core/kbaseNarrativeManagePanel.js
+++ b/kbase-extension/static/kbase/js/widgets/narrative_core/kbaseNarrativeManagePanel.js
@@ -657,7 +657,7 @@ define([
var $sharingDiv = $('
');
self.setInteractionPanel($interactionPanel, 'Share Settings', $sharingDiv);
new kbaseNarrativeSharePanel($sharingDiv, {
- ws_name_or_id: data.ws[0],
+ wsId: data.ws[0],
max_list_height: 'none',
add_user_input_width: '280px'
});
diff --git a/kbase-extension/static/kbase/js/widgets/narrative_core/kbaseNarrativeSharePanel.js b/kbase-extension/static/kbase/js/widgets/narrative_core/kbaseNarrativeSharePanel.js
index d1fb4e827c..84600e33d9 100644
--- a/kbase-extension/static/kbase/js/widgets/narrative_core/kbaseNarrativeSharePanel.js
+++ b/kbase-extension/static/kbase/js/widgets/narrative_core/kbaseNarrativeSharePanel.js
@@ -35,11 +35,10 @@ define ([
groups_url: Config.url('groups'),
loadingImage: Config.get('loading_gif'),
user_page_link: Config.url('profile_page'),
- ws_name_or_id: null,
+ wsId: null,
max_name_length: 35,
max_list_height: '250px',
- add_user_input_width: '200px',
- wsID: Config.get('workspaceId'),
+ add_user_input_width: '200px'
},
ws: null, // workspace client
narrOwner: null,
@@ -52,8 +51,8 @@ define ([
this.$mainPanel = $('
');
this.$elem.append(this.$mainPanel);
this.showWorking('loading narrative information');
-
- if (!this.options.ws_name_or_id) {
+
+ if (!this.options.wsId) {
//fail!
}
return this;
@@ -68,7 +67,7 @@ define ([
this.my_user_id = auth.user_id;
const p1 = this.fetchOrgs(this.authClient.getAuthToken());
- const p2 = this.fetchNarrativeOrgs(this.options.wsID, this.authClient.getAuthToken());
+ const p2 = this.fetchNarrativeOrgs(this.options.wsId, this.authClient.getAuthToken());
Promise.all([p1, p2]).then(() => {
this.refresh();
})
@@ -85,7 +84,7 @@ define ([
},
/**
- * fetch organizations that user is associated.
+ * fetch organizations that user is associated.
* @param {string} token authorization token
*/
fetchOrgs: function(token) {
@@ -133,12 +132,12 @@ define ([
.catch(error => console.error('Error while fetching group info:', error));
},
/**
- * fetch organizations that workspace is associated.
- * @param {int} wsID workspace id
+ * fetch organizations that workspace is associated.
+ * @param {int} wsId workspace id
* @param {string} token authorization token
*/
- fetchNarrativeOrgs: function(wsID, token) {
- var groupUrl = this.options.groups_url+'/group?resourcetype=workspace&resource='+wsID;
+ fetchNarrativeOrgs: function(wsId, token) {
+ var groupUrl = this.options.groups_url+'/group?resourcetype=workspace&resource='+wsId;
return fetch(groupUrl, {
method: "GET",
mode: "cors",
@@ -161,29 +160,22 @@ define ([
user_data: {},
all_users: null,
getInfoAndRender: function () {
- var self = this;
- if (!self.ws || !self.options.ws_name_or_id) {
+ const self = this;
+ if (!self.ws || !self.options.wsId) {
return;
}
- var wsIdentity = {};
- if (self.options.ws_name_or_id) {
- if (/^[1-9]\d*$/.test(self.options.ws_name_or_id)) {
- wsIdentity.id = parseInt(self.options.ws_name_or_id);
- } else {
- wsIdentity.workspace = self.options.ws_name_or_id;
- }
- }
+ const wsIdentity = {id: self.options.wsId};
Promise.resolve(self.ws.get_workspace_info(wsIdentity))
- .then(function (info) {
+ .then((info) => {
self.ws_info = info;
self.narrOwner = info[2];
return Promise.resolve(self.ws.get_permissions(wsIdentity));
})
- .then(function (perm) {
+ .then((perm) => {
self.ws_permissions = [];
self.user_data = {};
- var usernameList = [ self.my_user_id ];
+ const usernameList = [ self.my_user_id ];
Object.keys(perm).forEach(function(u) {
if (u === '*') {
return;
@@ -193,14 +185,14 @@ define ([
});
return self.authClient.getUserNames(self.authClient.getAuthToken(), usernameList);
})
- .then(function (data) {
+ .then((data) => {
self.user_data = data;
})
- .catch(function(error) {
+ .catch((error) => {
console.error(error);
self.reportError(error);
})
- .finally(function() {
+ .finally(() => {
self.render();
});
},
@@ -364,7 +356,7 @@ define ([
// if there are orgs already associated with the narrative, add the org list.
if(this.narrativeOrgList){
- var $narrativeOrgsDiv = $('
').css({'border': '1px solid rgb(170, 170, 170)', 'border-radius': '4px', 'text-align': 'left', 'width': '51%', 'padding': '10px', 'margin': 'auto', 'margin-top': '10px'});
+ var $narrativeOrgsDiv = $('').css({'border': '1px solid rgb(170, 170, 170)', 'border-radius': '4px', 'text-align': 'left', 'width': '51%', 'padding': '10px', 'margin': 'auto', 'margin-top': '10px'});
this.narrativeOrgList.forEach((value, key, map) => {
let url = window.location.origin + "/#org/" + key;
let $href = $('').attr("href", url);
@@ -374,7 +366,7 @@ define ([
$narrativeOrgsDiv.append($tr);
})
}
-
+
$shareWithOrgDiv.append($addOrgDiv); // put addOrgDiv into shareWithOrgDiv
$shareWithOrgDiv.append($narrativeOrgsDiv); // put list of narrative div
} else {
diff --git a/test/unit/spec/narrative_core/kbaseNarrativeSharePanel-spec.js b/test/unit/spec/narrative_core/kbaseNarrativeSharePanel-spec.js
index 765871f1c7..4fb155e6d5 100644
--- a/test/unit/spec/narrative_core/kbaseNarrativeSharePanel-spec.js
+++ b/test/unit/spec/narrative_core/kbaseNarrativeSharePanel-spec.js
@@ -5,11 +5,38 @@
/*jslint white: true*/
define([
'jquery',
- 'kbaseNarrativeSharePanel'
-], function($, Widget) {
- describe('Test the kbaseNarrativeSharePanel widget', function() {
- it('Should do things', function() {
+ 'kbaseNarrativeSharePanel',
+ 'base/js/namespace',
+ 'kbaseNarrative',
+], function($, KBaseNarrativeSharePanel, Jupyter, Narrative) {
+ describe('Test the kbaseNarrativeSharePanel widget', () => {
+ let sharePanel;
+ const $div = $('div');
+ const workspaceId = 12345;
+ beforeEach(function() {
+ jasmine.Ajax.install();
+ Jupyter.narrative = new Narrative();
+ Jupyter.narrative.userId = 'narrativetest';
+ Jupyter.narrative.narrController = {
+ uiModeIs: p => false
+ };
+ Jupyter.narrative.getAuthToken = () => { return 'NotARealToken!' };
+
+ sharePanel = new KBaseNarrativeSharePanel($div, { wsId: workspaceId });
+ });
+
+ afterEach(() => {
+ jasmine.Ajax.uninstall();
+ $div.empty();
});
+
+ it('Should build a widget', () => {
+ expect(KBaseNarrativeSharePanel).toBeDefined();
+ expect(sharePanel).toBeDefined();
+ });
+
+ it('Should ')
+
});
});