diff --git a/www/common/inner/access.js b/www/common/inner/access.js index 1b2b13d01..26ffeadf2 100644 --- a/www/common/inner/access.js +++ b/www/common/inner/access.js @@ -647,21 +647,22 @@ define([ return $div; }; - $(addBtn).click(function () { var priv = metadataMgr.getPrivateData(); var user = metadataMgr.getUserData(); var teamsData = Util.tryParse(JSON.stringify(priv.teams)) || {}; + var $div = $div2.find('.cp-share-column'); // Check selection var $sel = $div.find('.cp-usergrid-user.cp-selected'); var sel = $sel.toArray(); if (!sel.length) { return; } - var friend; + + var curves = []; var toAdd = sel.map(function (el) { var curve = $(el).attr('data-curve'); - friend = friends[curve] + curves.push(curve); var teamId = $(el).attr('data-teamid'); // If the pad is woned by a team, we can transfer ownership to ourselves if (curve === user.curvePublic && teamOwner) { return priv.edPublic; } @@ -693,14 +694,17 @@ define([ }, waitFor(function (err, res) { err = err || (res && res.error); redrawAll(true); - common.mailbox.sendTo("ADD_TO_ACCESS_LIST", { - channel: channel, - title: data.title || title, - }, { - channel: friend.notifications, - curvePublic: friend.curvePublic + curves.forEach(function(curve){ + common.mailbox.sendTo("ADD_TO_ACCESS_LIST", { + channel: channel, + }, { + channel: friends[curve].notifications, + curvePublic: friends[curve].curvePublic + }); + }); + if (err) { waitFor.abort(); var text = err === "INSUFFICIENT_PERMISSIONS" ? Messages.fm_forbidden diff --git a/www/common/outer/mailbox-handlers.js b/www/common/outer/mailbox-handlers.js index 80bee6907..8db5f5ce9 100644 --- a/www/common/outer/mailbox-handlers.js +++ b/www/common/outer/mailbox-handlers.js @@ -357,15 +357,19 @@ define([ var res = store.manager.findChannel(channel); if (!res.length) { return; } - var data = res[0]; - var id = data.id // check if that's correct - // var teamId = store.data.blockId; - ctx.Store.loadSharedFolder(null, id, data, function () { - // callback of loadSharefFolder, nothing to do here - }, undefined); - }); - - cb(true) + var data = res[0].data; + var id = res[0].id; + var teamId = store.id; + var parsed = Hash.parsePadUrl(data.href || data.roHref); + if (parsed) { + ctx.Store.loadSharedFolder(teamId, id, data, function () { + }, false); + } else { + //handle invalid ref/href + } + }); + + cb(true); };