From 70256739397a5725d8823e8d587497ef47a8236e Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Thu, 16 Apr 2015 13:05:40 -0500 Subject: [PATCH] VRFS-1847 : Show video button in session. * Hook to webcam viewer widget and initialize and toggle as appropriate from session.js * Camera icon --- web/app/assets/images/content/icon_cam.png | Bin 0 -> 3915 bytes web/app/assets/javascripts/session.js | 15 ++++++++++-- .../javascripts/webcam_viewer.js.coffee | 22 +++++++++--------- web/app/views/clients/_session.html.slim | 7 +++++- 4 files changed, 30 insertions(+), 14 deletions(-) create mode 100644 web/app/assets/images/content/icon_cam.png diff --git a/web/app/assets/images/content/icon_cam.png b/web/app/assets/images/content/icon_cam.png new file mode 100644 index 0000000000000000000000000000000000000000..e32bede67ba139fb85fcac2809a3001e132d95cb GIT binary patch literal 3915 zcmZ`*2{=@J`yNc$x3W_vSyIf{MaIq;lo86<2ZLc4F&RtNEZMSW3!$u8iXyV_@tW); zq_JeDymt9h@7GuF_5IIv{m%KF`#ksaJokC->s%)saRWwA!$kuC0O;Xb>Nk(CEGLWV z^zk`5{2V<1K%;_DQ$xVj)IbO~oE-*>1^~3^GaeBP4aV5Qh;_1c@6Ygo1U9+6sX_hM zv{-@q;qU+id1$bphx#c^7G~jFwuX&lurNLw4Hnw_LDnPGUzrf?P5SB@vlCHH)N3Wu z-zL)zJCIXj^Hn2b_G`W)H2}mx5U?3kv-G`6-50dBJRKxP%4^=W6&@asX9gtK3^RhR9txhfIKH zp8ZS&FdS~3$2^jPnf=mfx3^JYuxl-TC9&oD^aD>_;$|h?LoxP%GTb8#G6AG>szcmL z3D3$3a(K>Rw_$ARyr01#w9|XvXhU$Bn5hz#iJZbNKZn$@0k-%}($7`YCm8`Molh&z zPCwUM0|CCC0#r^u{&qeTYZ2f2nNEl{a(Nl+PL|~azVbzOKPw3Lt|3%zJGFat|JJoU zcBR0Ja8^mQ#%x}Go{oA?4;@1?(e`kg>4?-Qhxx0kMdWc-Bl||k7bE>IiPXX24z(c) zfyS|5Tbf}1p=o~(86iqezYHf9hr5;l-w-)OHJq{&2L-5Iq~Lc^@+S9PGG!8{>8yY2 zP!d<>9wXuXeSVLZ)-1whT33b7U~Y>p#@0Lw>9A~63I|&|Cn*dWHEn$hHEgXdHk4wMa!Z$ePR5Q&GH^HOnf1_%JY%8fN*>fQ z%<0jht+%XVtW3+3Ur>yqmap+JbTo2)=5h6_<}j0RkuC*RF^)vl1}wGEPYZ5%zP&uj zvKGYHyDa2~-M2`unXe)gOE!l{*khHytdb3v$J-GziMd0Utp2U6KWuarLv zWGTQHuY^dvB*>zt&7+|@c0*44jk1@rm)f(N^aU=1#ziSL876vl>b}~(5Lkj_^0#DC zS4l!~oKw0~`+MF&HMxG1a+5(|ZuzZj&FRW!Xb4;*EhowP zfpwa7xb^+d(rx+zZ{q{wtIp^ZDle4x3p~5Pr8@A;tG~MPdZqja^artXFxjX30|^Ul zo4jA@HmT79Xw%tCvpln0vlZ`do^BSi+L64;`7A0Ssx~U-o7CJJB8fOIQ--lPdMli? zd)ejky(GRQyCkxtm?B*x+z`u9Mv-%o-k_MHpd-q0%yEARTpUfzClWG=8J1EbW?%jJT4e+NC+uT++JIX4B@SIw~DZXkP(MW=-Z_S%@X2 zuJ#z(2~?j7~ALGsOUXw9uGE^RjD$oG9akx=|GGjmSy^D z*^2sEC0S1!U=61J?;78OK3GMnq&F30M`SmkGEuqHHW!QHiu*3-n&e(H z$yBgBJOdsNkM6o|FgiGCXjMb3B+@y}IS5J>OV@Vflz&7bpKA_3k!w-tyqD{hzI%lh z8fhGv!8XBWDY7DBAi5;NixftlGIp+9EZ=MS(3<9CZsXe#>PWJw=*^p$dsR{>I_1%@ z;(IO4ynKSK_C_sni(!jzUvOWX5*p?iR>!bCiubrw8|*v8y!2(dx_2XrL@DGW^kM*> zKb3*(74D_)&84MdUuPc_<#6k}GhNN&76-NkM_GEhW)B*TCy`8+_Ij?5M9+J)I=4=Y zLdOoP_pdPOFvh_mI}-B~=DCQp77vokZpYm&tBT*YUUOW_SCm%_SBzFXTkla{>`iKkd0jR zK+PjWfm)i*oOREg11uu-TyWW|+Q`$-lK>R8)=*b#t<{R@?C*p{MziU#5j4ACZ5l(c z>l!{9$r?Jz#v;gy8O6dzFS#S_YEvG5*Zo^7ia%Z8K9aV=@#UmF44w5(zlV8lb0%%Z zrTbjhx2}CZX*+4cUHf{E@1X}x(yLAkB_YG5X5(*e5X_rurvI*Aig5-xYmKdUYj#JY zxu;wrCI|JO=$F@9IaI98wX42S)t{~t?KNe3e&3qGv03rS93*vwgxR4=TdPiG`YP#;Mjwi?R2mpUg{Ud%os;t*X7fTz?B? zddG?p6Jr}wDN*pUPP@zzHk7~kbTN=CCT*^6(Wh!9<3q>zNW+w~{{UGuMH{8!c^00x z{+-(hrxF$CHq^)I=PksgoW+_3dw)xR^%bp+I3g?r_N=2h=I+q7!4cU4*+iM<==k;* zq&pqB!%u&!`J63YKuG4k*#Ta?Ah+?kV~2MwlTKmGE5f&ELFh1R>-Bq+2$SsLkHg`w zpUPl-bbY240tPb9^_~+|NTj6-!{((_)v3;qW`8D4R-@291!|37jwV97Bm;EpcuhyLF z7F;V1ACXEP)}Qj7-!tEbOm5Zq&OSWK;HHQ?y|)Uk_c^lo2wm`nk$`PW`yPR31RB|}9Gh$a*x4Hae#EMw)z&<9lS`BiPv|Fava*9|;yrNmDxdU-cIT(&hjJd*V$WlwXQq$Eu|`HPZre6?G0}^&)a^P z86aTR^711li|duP0uQtIZ8kgN7MAsP^pdiol?eB!559T|I@`@nZ3lnbmyk#L9sg5O zyJ{ib0RY;wCyNY__Lu_zprFSX8sm+x>&n~UoWUqtoHZKk>FjzO4FD*3${%l?(RdWd z(;4gHF7FBD`w=03ygz{Kkj#h*$3lSdux zZsUe=#baw#z`CqhSvA_EJ zgXM{G{eMZeHorKocipf*6xrH9&{(uH+6C`^%oB(F5^~(9!buDA#y8RKIPBdMF^aMh z3P1Y#1N^V5p9JLpBK!{io1o{0Ij)cTQ9=Bl0>5Lw#UJaIS93$7@HjU^91g3fa^eCI z!U2cJxjW!oL23pvpi9?LHW-%^Kv)6tZ^Cc6Y;EN67(5pJWB$L!^1}!!Sp1*p$=f)Y zBo=dG5P2-h#U9G%DQb(hL*2#V`4sK3Uak%p8=Q-~vV^As$dwyNRDs zzZvMKJAY(6wx=S^v84Z4U6H1NO*|g}AWMd;s~BEo{wooxL!rVHiZe1~I?JrWt@PlT zct(;5viLy~(6nhPr_Ra=MS^8VTW7bbmJdA0Xf>t|;svSS&m`(>U42Plj}6#qPRN)@ z%}5^`kDNawq*jyrPT^3#ANm(t?}{a8R5YkAFN;2<7 zk>>%X8T1>5vw}RT?`J7I^r`K|ZlS37c_rTG!zrNCwf8|NP9HUDJ#oB6krccM`9{2G zlg%3ipwTXfh~IojIWPDHN%@bIOLT)i zB;-Be)_#)0P+)Mgdqq7usCR=7uMxZ~i%5?Mzf`DtYUxv%^1LTmzue~idoQTD&AH7} zokzo9v58o+N1$r?lnW{QN`sRL-bhbqEo-@N6h>xVpA*Sc7Ny6-eHj2j8XPv o;&(c{N_roCI%67qUDn4RAg#i_@% literal 0 HcmV?d00001 diff --git a/web/app/assets/javascripts/session.js b/web/app/assets/javascripts/session.js index e32c5bd95..5f19c669e 100644 --- a/web/app/assets/javascripts/session.js +++ b/web/app/assets/javascripts/session.js @@ -13,6 +13,7 @@ var modUtils = context.JK.ModUtils; var logger = context.JK.logger; var self = this; + var webcamViewer = new context.JK.WebcamViewer() var defaultParticipant = { tracks: [{ @@ -143,6 +144,7 @@ var shareDialog = new JK.ShareDialog(context.JK.app, sessionId, "session"); shareDialog.initialize(context.JK.FacebookHelperInstance); + webcamViewer.beforeShow() } function beforeDisconnect() { @@ -710,7 +712,7 @@ function _initDialogs() { configureTrackDialog.initialize(); - addNewGearDialog.initialize(); + addNewGearDialog.initialize(); } // Get the latest list of underlying audio mixer channels, and populates: @@ -2473,6 +2475,14 @@ return false; } + function sessionWebCam(e) { + e.preventDefault(); + webcamViewer.toggleWebcam() + //webcamViewer.beforeShow() + logger.debug("WEBCAMMMING") + return false; + } + // http://stackoverflow.com/questions/2604450/how-to-create-a-jquery-clock-timer function updateRecordingTimer() { @@ -3096,6 +3106,7 @@ function events() { $('#session-leave').on('click', sessionLeave); $('#session-resync').on('click', sessionResync); + $('#session-webcam').on('click', sessionWebCam); $('#session-contents').on("click", '[action="delete"]', deleteSession); $tracksHolder.on('click', 'div[control="mute"]', toggleMute); $('#recording-start-stop').on('click', startStopRecording); @@ -3179,7 +3190,7 @@ $fluidTracks = $screen.find('.session-fluidtracks'); $voiceChat = $screen.find('#voice-chat'); $tracksHolder = $screen.find('#tracks') - + webcamViewer.init($(".webcam-container")) events(); diff --git a/web/app/assets/javascripts/webcam_viewer.js.coffee b/web/app/assets/javascripts/webcam_viewer.js.coffee index 6bef93d2c..6986d35ba 100644 --- a/web/app/assets/javascripts/webcam_viewer.js.coffee +++ b/web/app/assets/javascripts/webcam_viewer.js.coffee @@ -14,13 +14,13 @@ context.JK.WebcamViewer = class WebcamViewer @resolution=null init: (root) => - console.log 'root', root + @logger.debug 'root', root @root = root @toggleBtn = @root.find(".webcam-test-btn") @webcamSelect = @root.find(".webcam-select-container select") @resolutionSelect = @root.find(".webcam-resolution-select-container select") @webcamSelect.on("change", this.selectWebcam) - console.log 'webcamSelect', @webcamSelect + @logger.debug 'webcamSelect', @webcamSelect beforeShow:() => this.loadWebCams() @@ -35,16 +35,16 @@ context.JK.WebcamViewer = class WebcamViewer selectWebcam:(e, data) => - console.log 'Selecting control: ', @webcamSelect + @logger.debug 'Selecting control: ', @webcamSelect device = @webcamSelect.val() if device != null and device != '' - console.log 'Selecting webcam: ', device + @logger.debug 'Selecting webcam: ', device selectResolution:() => - console.log 'Selecting res control: ', @resolutionSelect + @logger.debug 'Selecting res control: ', @resolutionSelect @resolution = @resolutionSelect.val() if @resolution != null and @resolution != '' - console.log 'Selecting res: ', @resolution + @logger.debug 'Selecting res: ', @resolution @client.FTUESetVideoEncodeResolution @resolution setVideoOff:() => @@ -57,12 +57,12 @@ context.JK.WebcamViewer = class WebcamViewer setToggleState:() => available = @webcamSelect.find('option').size() > 0 shared = this.isVideoShared() - console.log 'Setting toggle from : ', shared + @logger.debug 'Setting toggle from : ', shared @toggleBtn.prop 'disabled', true @toggleBtn.prop 'disabled', !available toggleWebcam:() => - console.log 'Toggling webcam from: ', this.isVideoShared() + @logger.debug 'Toggling webcam from: ', this.isVideoShared() if this.isVideoShared() @client.SessStopVideoSharing() @videoShared = false @@ -80,7 +80,7 @@ context.JK.WebcamViewer = class WebcamViewer id: device value: device text: device) - console.log("Appending ", option, selectControl) + @logger.debug("Appending to: ", selectControl, option) selectControl.append option selectControl.val selectedDevice @@ -92,9 +92,9 @@ context.JK.WebcamViewer = class WebcamViewer loadResolutions:() => resolutions = @client.FTUEGetAvailableEncodeVideoResolutions() selectControl = @resolutionSelect - console.log 'FOUND THESE RESOLUTIONS', resolutions, selectControl + @logger.debug 'FOUND THESE RESOLUTIONS', resolutions, selectControl context._.each resolutions, (value, key, obj) -> - console.log 'RRR', key, value + @logger.debug 'RRR', key, value option = $('