Skip to content

Commit 6dac8ae

Browse files
committed
コピーガード状態変更イベントのUIを追加。
1 parent 355bd43 commit 6dac8ae

1 file changed

Lines changed: 55 additions & 2 deletions

File tree

dConnectJavascriptApp/js/profile/setting.js

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -407,14 +407,21 @@ function showCopyGuard() {
407407
setTitle('CopyGuard API');
408408

409409
let str = '';
410-
str += '<div style="text-align:center">コピーガード状態: <span id="copyGuardState">未確認</span></div>';
410+
str += '<div style="text-align:center">コピーガード状態: <span id="copyGuardState"></span></div>';
411411
str += '<div style="text-align:center"><div data-role="controlgroup" data-type="horizontal">'
412412
str += ' <input data-inline="true" data-mini="true" onclick="turnCopyGuardOnOff(true)" type="button" value="ON" />';
413413
str += ' <input data-inline="true" data-mini="true" onclick="turnCopyGuardOnOff(false)" type="button" value="OFF" />';
414414
str += '</div></div>';
415+
str += '<br>';
416+
str += '<div style="text-align:center">状態変更イベント: <span id="changeEventState"></span></div>';
417+
str += '<div style="text-align:center"><div data-role="controlgroup" data-type="horizontal">'
418+
str += ' <input data-inline="true" data-mini="true" onclick="registerChangeEvent()" type="button" value="登録" />';
419+
str += ' <input data-inline="true" data-mini="true" onclick="unregisterChangeEvent()" type="button" value="解除" />';
420+
str += '</div></div>';
415421
reloadContent(str);
416422

417423
getCopyGuardState();
424+
registerChangeEvent();
418425
}
419426

420427
function getCopyGuardState() {
@@ -428,7 +435,7 @@ function getCopyGuardState() {
428435
}
429436
showCopyGuardState(json.enabled ? 'ON' : 'OFF');
430437
}).catch(e => {
431-
showError(method + ' setting/copyGuard', e.errorCode, e.errorMessage);
438+
showError('GET /setting/copyGuard', e.errorCode, e.errorMessage);
432439
});
433440
}
434441

@@ -449,4 +456,50 @@ function turnCopyGuardOnOff(on) {
449456
}).catch(e => {
450457
showError(method + ' setting/copyGuard', e.errorCode, e.errorMessage);
451458
});
459+
}
460+
461+
function showCopyGuardChangeEventState(stateName) {
462+
let e = document.getElementById('changeEventState');
463+
e.innerHTML = stateName;
464+
}
465+
466+
function registerChangeEvent() {
467+
showCopyGuardChangeEventState('登録中...');
468+
let onmessage = function(event) {
469+
let json = JSON.parse(event);
470+
if (DEBUG) {
471+
console.log('Event: /setting/copyGuard/onChange', json);
472+
}
473+
showCopyGuardState(json.enabled ? 'ON' : 'OFF');
474+
};
475+
sdk.addEventListener({
476+
profile: 'setting',
477+
interface: 'copyGuard',
478+
attribute: 'onChange'
479+
}, onmessage).then(json => {
480+
if (DEBUG) {
481+
console.log('Response: ', json);
482+
}
483+
showCopyGuardChangeEventState('受信する');
484+
}).catch(e => {
485+
showCopyGuardChangeEventState('登録失敗');
486+
showError('PUT /setting/copyGuard/onChange', e.errorCode, e.errorMessage);
487+
});
488+
}
489+
490+
function unregisterChangeEvent() {
491+
showCopyGuardChangeEventState('解除中...');
492+
sdk.removeEventListener({
493+
profile: 'setting',
494+
interface: 'copyGuard',
495+
attribute: 'onChange'
496+
}).then(json => {
497+
if (DEBUG) {
498+
console.log('Response: ', json);
499+
}
500+
showCopyGuardChangeEventState('受信しない');
501+
}).catch(e => {
502+
showCopyGuardChangeEventState('解除失敗');
503+
showError('DELETE /setting/copyGuard/onChange', e.errorCode, e.errorMessage);
504+
});
452505
}

0 commit comments

Comments
 (0)