function _updateClient()

in openmeetings-web/src/main/front/src/room/user-list.js [137:222]


function _updateClient(c) {
	if (!options) {
		return; //too early
	}
	const self = c.uid === options.uid
		, le = _getClient(c.uid)
		, selfCamStream = c.streams.find(s => s.type === 'WEBCAM')
		, hasAudio = VideoUtil.hasMic(self && selfCamStream ? selfCamStream : c)
		, hasVideo = VideoUtil.hasCam(self && selfCamStream ? selfCamStream : c)
		, speaks = le.find('.audio-activity');
	if (le.length === 0) {
		return;
	}
	__setStatus(c, le);
	if (hasVideo || hasAudio) {
		if (le.find('.restart').length === 0) {
			le.prepend(OmUtil.tmpl('#user-av-restart').click(function () {
				VideoManager.refresh(c.uid);
			}));
		}
	} else {
		le.find('.restart').remove();
	}
	speaks.hide().removeClass('clickable').attr('title', speaks.data('speaks')).off();
	if (hasAudio) {
		speaks.show();
		if(UserListUtil.hasRight('MUTE_OTHERS')) {
			speaks.addClass('clickable').click(function () {
				VideoManager.clickMuteOthers(c.uid);
			}).attr('title', speaks.attr('title') + speaks.data('mute'));
		}
	}
	le.attr('title', c.user.displayName)
		.css('background-image', 'url(' + c.user.pictureUri + ')')
		.find('.user.name').text(c.user.displayName);

	if (c.user.id !== -1) {
		const actions = le.find('.user.actions');
		__rightVideoIcon(c, actions);
		__rightAudioIcon(c, actions);
		__rightOtherIcons(c, actions);
		__activityIcon(actions, '.kick'
			, () => !self && UserListUtil.hasRight('MODERATOR') && !UserListUtil.hasRight('SUPER_MODERATOR', c.rights)
			, null
			, {
				confirmationEvent: 'om-kick'
				, placement: Settings.isRtl ? 'left' : 'right'
				, onConfirm: () => OmUtil.roomAction({action: 'kick', uid: c.uid})
			});
		__activityIcon(actions, '.private-chat'
			, () => options.userId !== c.user.id && $('#chatPanel').is(':visible')
			, function() {
				Chat.addTab('chatTab-u' + c.user.id, c.user.displayName);
				Chat.open();
				$('#chatMessage .wysiwyg-editor').click();
			});
	}
	if (self) {
		options.rights = c.rights;
		QuickPoll.setRights();
		options.activities = c.activities;
		const header = $('#room-sidebar-tab-users .header');
		header.find('.om-icon.settings').off().click(VideoSettings.open);
		__rightVideoIcon(c, header);
		__activityAVIcon(
				header
				, '.activity.cam'
				, () => !options.audioOnly && UserListUtil.hasRight(VideoUtil.CAM_ACTIVITY)
				, () => hasVideo
				, () => Settings.load().video.cam < 0)
			.off().click(function() {
				VideoManager.toggleActivity(VideoUtil.CAM_ACTIVITY);
			});;
		__rightAudioIcon(c, header);
		__activityAVIcon(
				header
				, '.activity.mic', () => UserListUtil.hasRight(VideoUtil.MIC_ACTIVITY)
				, () => hasAudio
				, () => Settings.load().video.mic < 0)
			.off().click(function() {
				VideoManager.toggleActivity(VideoUtil.MIC_ACTIVITY);
			});
		__rightOtherIcons(c, header);
	}
	VideoManager.update(c)
}