39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
const api = chrome;
|
|
const urlInput = document.getElementById('url');
|
|
const tokenInput = document.getElementById('token');
|
|
const deviceInput = document.getElementById('device');
|
|
const status = document.getElementById('status');
|
|
|
|
api.runtime.sendMessage({ action: 'getConfig' }, (config) => {
|
|
urlInput.value = config.serverUrl || '';
|
|
tokenInput.value = config.syncToken || '';
|
|
deviceInput.value = config.deviceName || '';
|
|
});
|
|
|
|
document.getElementById('save').addEventListener('click', () => {
|
|
api.runtime.sendMessage({
|
|
action: 'setConfig',
|
|
data: {
|
|
serverUrl: urlInput.value.replace(/\/$/, ''),
|
|
syncToken: tokenInput.value,
|
|
deviceName: deviceInput.value,
|
|
},
|
|
}, () => { status.textContent = '已保存'; });
|
|
});
|
|
|
|
document.getElementById('sync').addEventListener('click', () => {
|
|
api.runtime.sendMessage({ action: 'sync' }, (result) => {
|
|
if (!result) {
|
|
status.textContent = '失败: 扩展后台无响应';
|
|
return;
|
|
}
|
|
status.textContent = result.skipped
|
|
? '无待同步'
|
|
: result.ok
|
|
? `同步 ${result.count} 条,共 ${result.total}`
|
|
: `失败: ${result.error || result.status}`;
|
|
});
|
|
});
|