Record options added to menu.
This commit is contained in:
+12
-2
@@ -1657,6 +1657,11 @@ function canModerateChat() {
|
|||||||
serverConnection.permissions.indexOf('op') >= 0);
|
serverConnection.permissions.indexOf('op') >= 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function canRecordHall() {
|
||||||
|
return !!(serverConnection && serverConnection.permissions &&
|
||||||
|
serverConnection.permissions.indexOf('record') >= 0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {{label?: string, type?: string, onClick?: function(): void}[]} items
|
* @param {{label?: string, type?: string, onClick?: function(): void}[]} items
|
||||||
* @param {HTMLElement} trigger
|
* @param {HTMLElement} trigger
|
||||||
@@ -1779,6 +1784,12 @@ function userMenu(elt) {
|
|||||||
inviteMenu();
|
inviteMenu();
|
||||||
}});
|
}});
|
||||||
}
|
}
|
||||||
|
if(canRecordHall()) {
|
||||||
|
items.push({label: hallRecording ? 'Stop recording' : 'Start recording',
|
||||||
|
onClick: () => {
|
||||||
|
serverConnection.hallAction(hallRecording ? 'unrecord' : 'record');
|
||||||
|
}});
|
||||||
|
}
|
||||||
if(findUpMedia('audio'))
|
if(findUpMedia('audio'))
|
||||||
items.push({label: 'Turn microphone off', onClick: () => {
|
items.push({label: 'Turn microphone off', onClick: () => {
|
||||||
closeUpMedia('audio');
|
closeUpMedia('audio');
|
||||||
@@ -3131,8 +3142,7 @@ function chalkboardGrantPredicate() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function recordingPredicate() {
|
function recordingPredicate() {
|
||||||
if(serverConnection && serverConnection.permissions &&
|
if(canRecordHall())
|
||||||
serverConnection.permissions.indexOf('record') >= 0)
|
|
||||||
return null;
|
return null;
|
||||||
return 'You are not allowed to record';
|
return 'You are not allowed to record';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,3 +106,13 @@ func TestMicrophoneHardStopLivesInSelfMenu(t *testing.T) {
|
|||||||
requireFunctionContains(t, js, "userMenu", "closeUpMedia('audio')")
|
requireFunctionContains(t, js, "userMenu", "closeUpMedia('audio')")
|
||||||
requireFunctionContains(t, js, "userMenu", "Restart audio connection")
|
requireFunctionContains(t, js, "userMenu", "Restart audio connection")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRecordingControlLivesInSelfMenu(t *testing.T) {
|
||||||
|
js := readStaticFile(t, "skald.js")
|
||||||
|
|
||||||
|
requireFunctionContains(t, js, "canRecordHall", "serverConnection.permissions.indexOf('record') >= 0")
|
||||||
|
requireFunctionContains(t, js, "recordingPredicate", "if(canRecordHall())")
|
||||||
|
requireFunctionContains(t, js, "userMenu", "if(canRecordHall())")
|
||||||
|
requireFunctionContains(t, js, "userMenu", "hallRecording ? 'Stop recording' : 'Start recording'")
|
||||||
|
requireFunctionContains(t, js, "userMenu", "serverConnection.hallAction(hallRecording ? 'unrecord' : 'record')")
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user