Refresh access modal when other tabs make changes
This commit is contained in:
parent
bd0e4e66bb
commit
57c360ebf6
@ -16,6 +16,25 @@ define([
|
|||||||
Messages.teams = "Teams"; // XXX
|
Messages.teams = "Teams"; // XXX
|
||||||
Messages.access_noContact = "No other contact to add"; // XXX
|
Messages.access_noContact = "No other contact to add"; // XXX
|
||||||
|
|
||||||
|
var evRedrawAll = Util.mkEvent();
|
||||||
|
|
||||||
|
// Override metadata values from data
|
||||||
|
var override = function (data, obj) {
|
||||||
|
data.owners = obj.owners;
|
||||||
|
data.expire = obj.expire;
|
||||||
|
data.pending_owners = obj.pending_owners;
|
||||||
|
data.mailbox = obj.mailbox;
|
||||||
|
data.restricted = obj.restricted;
|
||||||
|
data.allowed = obj.allowed;
|
||||||
|
};
|
||||||
|
var loadMetadata = function (common, data, waitFor, redraw) {
|
||||||
|
common.getPadMetadata({
|
||||||
|
channel: data.channel
|
||||||
|
}, waitFor(function (md) {
|
||||||
|
override(data, md);
|
||||||
|
if (redraw) { evRedrawAll.fire(redraw); }
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
|
||||||
var getOwnersTab = function (common, data, opts, _cb) {
|
var getOwnersTab = function (common, data, opts, _cb) {
|
||||||
var cb = Util.once(Util.mkAsync(_cb));
|
var cb = Util.once(Util.mkAsync(_cb));
|
||||||
@ -293,12 +312,7 @@ define([
|
|||||||
redrawAll = function (reload) {
|
redrawAll = function (reload) {
|
||||||
nThen(function (waitFor) {
|
nThen(function (waitFor) {
|
||||||
if (!reload) { return; }
|
if (!reload) { return; }
|
||||||
common.getPadMetadata({
|
loadMetadata(common, data, waitFor, "owner");
|
||||||
channel: data.channel
|
|
||||||
}, waitFor(function (md) {
|
|
||||||
data.owners = md.owners || [];
|
|
||||||
data.pending_owners = md.pending_owners || [];
|
|
||||||
}));
|
|
||||||
}).nThen(function () {
|
}).nThen(function () {
|
||||||
owners = data.owners || [];
|
owners = data.owners || [];
|
||||||
pending_owners = data.pending_owners || [];
|
pending_owners = data.pending_owners || [];
|
||||||
@ -310,14 +324,12 @@ define([
|
|||||||
};
|
};
|
||||||
redrawAll();
|
redrawAll();
|
||||||
|
|
||||||
var handler = sframeChan.on('EV_RT_METADATA', function (md) {
|
evRedrawAll.reg(function (type) {
|
||||||
if (!$div1.length) {
|
if (type === "owner") { return; }
|
||||||
return void handler.stop();
|
setTimeout(function () {
|
||||||
}
|
|
||||||
data.owners = md.owners || [];
|
|
||||||
data.pending_owners = md.pending_owners || [];
|
|
||||||
redrawAll();
|
redrawAll();
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
// Create modal
|
// Create modal
|
||||||
var link = h('div.cp-share-columns', [
|
var link = h('div.cp-share-columns', [
|
||||||
@ -593,13 +605,7 @@ define([
|
|||||||
redrawAll = function (reload) {
|
redrawAll = function (reload) {
|
||||||
nThen(function (waitFor) {
|
nThen(function (waitFor) {
|
||||||
if (!reload) { return; }
|
if (!reload) { return; }
|
||||||
common.getPadMetadata({
|
loadMetadata(common, data, waitFor, "allow");
|
||||||
channel: data.channel
|
|
||||||
}, waitFor(function (md) {
|
|
||||||
data.owners = md.owners;
|
|
||||||
data.restricted = md.restricted;
|
|
||||||
data.allowed = md.allowed;
|
|
||||||
}));
|
|
||||||
}).nThen(function () {
|
}).nThen(function () {
|
||||||
owners = data.owners || [];
|
owners = data.owners || [];
|
||||||
restricted = data.restricted || false;
|
restricted = data.restricted || false;
|
||||||
@ -613,15 +619,12 @@ define([
|
|||||||
};
|
};
|
||||||
redrawAll();
|
redrawAll();
|
||||||
|
|
||||||
var handler = sframeChan.on('EV_RT_METADATA', function (md) {
|
evRedrawAll.reg(function (type) {
|
||||||
if (!$div1.length) {
|
if (type === "allow") { return; }
|
||||||
return void handler.stop();
|
setTimeout(function () {
|
||||||
}
|
|
||||||
data.owners = md.owners || [];
|
|
||||||
data.restricted = md.restricted;
|
|
||||||
data.allowed = md.allowed;
|
|
||||||
redrawAll();
|
redrawAll();
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
cb(void 0, link);
|
cb(void 0, link);
|
||||||
};
|
};
|
||||||
@ -938,27 +941,21 @@ define([
|
|||||||
return h('div', content);
|
return h('div', content);
|
||||||
};
|
};
|
||||||
|
|
||||||
var redraw = function () {
|
var redraw = function (right) {
|
||||||
|
if (!right) {
|
||||||
$div1.empty();
|
$div1.empty();
|
||||||
$div1.append(drawLeft());
|
$div1.append(drawLeft());
|
||||||
|
}
|
||||||
$div2.empty();
|
$div2.empty();
|
||||||
$div2.append(drawRight());
|
$div2.append(drawRight());
|
||||||
};
|
};
|
||||||
var handler = sframeChan.on('EV_RT_METADATA', function (md) {
|
|
||||||
if (!$div.length) {
|
|
||||||
handler.stop();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
md = JSON.parse(JSON.stringify(md));
|
|
||||||
data.owners = md.owners;
|
|
||||||
data.expire = md.expire;
|
|
||||||
data.pending_owners = md.pending_owners;
|
|
||||||
data.mailbox = md.mailbox;
|
|
||||||
data.restricted = md.restricted;
|
|
||||||
data.allowed = md.allowed;
|
|
||||||
redraw();
|
redraw();
|
||||||
|
|
||||||
|
evRedrawAll.reg(function (ownersOrAllow) {
|
||||||
|
setTimeout(function () {
|
||||||
|
redraw(ownersOrAllow);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
redraw();
|
|
||||||
|
|
||||||
cb(void 0, $div);
|
cb(void 0, $div);
|
||||||
};
|
};
|
||||||
@ -989,12 +986,7 @@ define([
|
|||||||
channel: opts.channel // optional, fallback to current pad
|
channel: opts.channel // optional, fallback to current pad
|
||||||
}, waitFor(function (obj) {
|
}, waitFor(function (obj) {
|
||||||
if (obj && obj.error) { console.error(obj.error); return; }
|
if (obj && obj.error) { console.error(obj.error); return; }
|
||||||
data.owners = obj.owners;
|
loadMetadata(common, data, waitFor);
|
||||||
data.expire = obj.expire;
|
|
||||||
data.pending_owners = obj.pending_owners;
|
|
||||||
data.mailbox = obj.mailbox;
|
|
||||||
data.restricted = obj.restricted;
|
|
||||||
data.allowed = obj.allowed;
|
|
||||||
}));
|
}));
|
||||||
}).nThen(function () {
|
}).nThen(function () {
|
||||||
cb(void 0, data);
|
cb(void 0, data);
|
||||||
@ -1075,6 +1067,15 @@ define([
|
|||||||
wide: true
|
wide: true
|
||||||
});
|
});
|
||||||
cb (void 0, modal);
|
cb (void 0, modal);
|
||||||
|
|
||||||
|
var sframeChan = common.getSframeChannel();
|
||||||
|
var handler = sframeChan.on('EV_RT_METADATA', function (md) {
|
||||||
|
if (!$(modal).length) {
|
||||||
|
return void handler.stop();
|
||||||
|
}
|
||||||
|
override(data, Util.clone(md));
|
||||||
|
evRedrawAll.fire();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user