APIdog
APIdog copied to clipboard
Disable online via API
Stable branch v6.4.5 already has code, but save doesn't works:
hideOnlineDialogOpen: function() {
var content = $.e('div', { append: [Site.Loader(true)] });
var fetch = function() {
Site.API('account.getPrivacySettings', {
v: 5.108
}, onLoad);
};
var onLoad = function(result) {
if (result.error) {
content.textContent = 'Произошла ошибка';
return;
}
result = result.response;
var settings = result.settings;
var needed = null;
for (var i = 0, item; i < settings.length; ++i) {
item = settings[i];
if (item.key === 'online') {
needed = item;
break;
}
}
if (!needed) {
content.textContent = 'Нет возможности изменить онлайн легально.';
return;
}
var currentValue = needed.value.category !== 'all';
content.innerHTML = '<div>Сейчас скрытие онлайна <b>' + (currentValue ? 'включено' : 'выключено') + '</b></div>';
content.appendChild($.e('button', {
html: currentValue ? 'Выключить' : 'Включить',
onclick: setValue.bind(null, !currentValue)
}));
};
var setValue = function(state) {
Site.API('account.setPrivacy', {
key: 'online',
value: state ? 'all' : 'only_me',
v: 5.108
}, onChanged);
};
var onChanged = function(result) {
content.textContent = result.response ? 'Успешно сохранено' : result.error.error_msg;
};
var modal = new Modal({
title: 'Скрытие онлайна',
content: content,
footer: [
{
name: 'close',
title: 'Закрыть',
onclick: function() {
modal.close();
}
}
]
}).show();
fetch();
},