Fix cba reset on join. Change how the cba state is stored
This commit is contained in:
@@ -1622,18 +1622,7 @@ define([
|
||||
return void UI.alert(Messages.autostore_notAvailable);
|
||||
}
|
||||
var metadataMgr = common.getMetadataMgr();
|
||||
sframeChan.query('Q_PROPERTIES_OPEN', {
|
||||
metadata: metadataMgr.getMetadata()
|
||||
}, function (err, data) {
|
||||
if (!data || !data.cmd) { return; }
|
||||
if (data.cmd === "UPDATE_METADATA") {
|
||||
if (!data.key) { return; }
|
||||
var md = Util.clone(metadataMgr.getMetadata());
|
||||
md[data.key] = data.value;
|
||||
if (!data.value) { delete md[data.key]; }
|
||||
metadataMgr.updateMetadata(md);
|
||||
}
|
||||
});
|
||||
sframeChan.query('EV_PROPERTIES_OPEN');
|
||||
});
|
||||
});
|
||||
break;
|
||||
|
||||
@@ -69,23 +69,7 @@ define([
|
||||
Modal.isOwned = function (Env, data) {
|
||||
var common = Env.common;
|
||||
data = data || {};
|
||||
var priv = common.getMetadataMgr().getPrivateData();
|
||||
var edPublic = priv.edPublic;
|
||||
var owned = false;
|
||||
if (Array.isArray(data.owners) && data.owners.length) {
|
||||
if (data.owners.indexOf(edPublic) !== -1) {
|
||||
owned = true;
|
||||
} else {
|
||||
Object.keys(priv.teams || {}).some(function (id) {
|
||||
var team = priv.teams[id] || {};
|
||||
if (team.viewer) { return; }
|
||||
if (data.owners.indexOf(team.edPublic) === -1) { return; }
|
||||
owned = Number(id);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
return owned;
|
||||
return common.isOwned(data.owners);
|
||||
};
|
||||
|
||||
var blocked = false;
|
||||
|
||||
@@ -50,56 +50,6 @@ define([
|
||||
// File and history size...
|
||||
var owned = Modal.isOwned(Env, data);
|
||||
|
||||
var metadataMgr = common.getMetadataMgr();
|
||||
var priv = metadataMgr.getPrivateData();
|
||||
if (owned && priv.app === 'code') {
|
||||
(function () {
|
||||
var sframeChan = common.getSframeChannel();
|
||||
var md = (opts.data && opts.data.metadata) || {};
|
||||
var div = h('div');
|
||||
var hint = h('div.cp-app-prop-hint', Messages.cba_hint);
|
||||
var $div = $(div);
|
||||
var setButton = function (state) {
|
||||
var button = h('button.btn');
|
||||
var $button = $(button);
|
||||
$div.html('').append($button);
|
||||
if (state) {
|
||||
// Add "enable" button
|
||||
$button.addClass('btn-secondary').text(Messages.cba_enable);
|
||||
UI.confirmButton(button, {
|
||||
classes: 'btn-primary'
|
||||
}, function () {
|
||||
$button.remove();
|
||||
sframeChan.event("EV_SECURE_ACTION", {
|
||||
cmd: 'UPDATE_METADATA',
|
||||
key: 'enableColors',
|
||||
value: true
|
||||
});
|
||||
common.setAttribute(['code', 'enableColors'], true);
|
||||
setButton(false);
|
||||
});
|
||||
return;
|
||||
}
|
||||
// Add "disable" button
|
||||
$button.addClass('btn-danger-alt').text(Messages.cba_disable);
|
||||
UI.confirmButton(button, {
|
||||
classes: 'btn-danger'
|
||||
}, function () {
|
||||
$button.remove();
|
||||
sframeChan.event("EV_SECURE_ACTION", {
|
||||
cmd: 'UPDATE_METADATA',
|
||||
key: 'enableColors',
|
||||
value: false
|
||||
});
|
||||
common.setAttribute(['code', 'enableColors'], false);
|
||||
setButton(true);
|
||||
});
|
||||
};
|
||||
setButton(!md.enableColors);
|
||||
$d.append(h('div.cp-app-prop', [Messages.cba_properties, hint, div]));
|
||||
})();
|
||||
}
|
||||
|
||||
// check the size of this file, including additional channels
|
||||
var bytes = 0;
|
||||
var historyBytes;
|
||||
|
||||
@@ -1035,16 +1035,16 @@ define([
|
||||
initSecureModal('filepicker', data || {}, cb);
|
||||
});
|
||||
|
||||
sframeChan.on('Q_PROPERTIES_OPEN', function (data, cb) {
|
||||
initSecureModal('properties', data || {}, cb);
|
||||
sframeChan.on('EV_PROPERTIES_OPEN', function (data, cb) {
|
||||
initSecureModal('properties', data || {});
|
||||
});
|
||||
|
||||
sframeChan.on('EV_ACCESS_OPEN', function (data) {
|
||||
initSecureModal('access', data || {}, null);
|
||||
initSecureModal('access', data || {});
|
||||
});
|
||||
|
||||
sframeChan.on('EV_SHARE_OPEN', function (data) {
|
||||
initSecureModal('share', data || {}, null);
|
||||
initSecureModal('share', data || {});
|
||||
});
|
||||
|
||||
sframeChan.on('Q_TEMPLATE_USE', function (data, cb) {
|
||||
|
||||
@@ -331,6 +331,26 @@ define([
|
||||
}, cb);
|
||||
};
|
||||
|
||||
funcs.isOwned = function (owners) {
|
||||
var priv = ctx.metadataMgr.getPrivateData();
|
||||
var edPublic = priv.edPublic;
|
||||
var owned = false;
|
||||
if (Array.isArray(owners) && owners.length) {
|
||||
if (owners.indexOf(edPublic) !== -1) {
|
||||
owned = true;
|
||||
} else {
|
||||
Object.keys(priv.teams || {}).some(function (id) {
|
||||
var team = priv.teams[id] || {};
|
||||
if (team.viewer) { return; }
|
||||
if (owners.indexOf(team.edPublic) === -1) { return; }
|
||||
owned = Number(id);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
return owned;
|
||||
};
|
||||
|
||||
funcs.isPadStored = function (cb) {
|
||||
ctx.sframeChan.query("Q_IS_PAD_STORED", null, function (err, obj) {
|
||||
cb (err || (obj && obj.error), obj);
|
||||
|
||||
Reference in New Issue
Block a user