@@ -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
420427function 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