Modified: openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/baseDrawImage.lzx URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/baseDrawImage.lzx?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/baseDrawImage.lzx (original) +++ openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/baseDrawImage.lzx Thu Aug 11 06:12:30 2016 @@ -9,7 +9,7 @@ with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @@ -22,136 +22,110 @@ <class name="baseDrawImage" extends="baseDrawLetter"> - <!-- attribute shows if this image is loaded as part of a wml-file-object + <!-- attribute shows if this image is loaded as part of a wml-file-object if true it will send a onwmlLoaderSend message and NO extra loading bar if false it will show a loading abr for that image --> <attribute name="isWmlLoaderImage" value="false" type="boolean" /> - - <!-- indicates if this client is still loading an old image for the screenViwer --> - <attribute name="isScreenImageLoading" value="false" type="boolean" /> - <attribute name="screenImageRefNumber" value="1" type="number" /> - <attribute name="screenImageRef1" value="null" /> - <attribute name="screenImageRef2" value="null" /> - - <event name="setNewScreenUserName" /> - - <!-- invoked by clicking on the confirmation dialog after - clicking on an image in the Library --> - <method name="addNewSyncImage" args="urlname,posx,posy,baseurl,fileName,moduleName,parentPath,room,domain"> - if ($debug) Debug.write("urlname: ",urlname); - var now = new Date(); - //This invokes a Method which is in the remoteWhiteboard.lzx - this.startNewObjectSyncProcess.isStarting = true; - this.startNewObjectSyncProcess.uniqueObjectSyncName = fileName + now.getTime(); - this.startNewObjectSyncProcess.doCall(); - this.addNewImage(urlname,posx,posy,baseurl,fileName, - moduleName,parentPath,room,domain, - this.startNewObjectSyncProcess.uniqueObjectSyncName,false); - </method> - - <!-- standard add Function --> - <method name="addNewImage" args="urlname,posx,posy,baseurl,fileName,moduleName,parentPath,room,domain,uniqueObjectSyncName,isLocalSync"> - if ($debug) Debug.write("urlname posx: ",urlname,posx); - this.addImageToLayer(this,'image'+this.getCounter(),urlname, - posx,posy,0,0, - true, - baseurl,fileName,moduleName,parentPath,room,domain,uniqueObjectSyncName,isLocalSync); - </method> - + + <!-- indicates if this client is still loading an old image for the screenViwer --> + <attribute name="isScreenImageLoading" value="false" type="boolean" /> + <attribute name="screenImageRefNumber" value="1" type="number" /> + <attribute name="screenImageRef1" value="null" /> + <attribute name="screenImageRef2" value="null" /> + + <event name="setNewScreenUserName" /> + + <!-- invoked by clicking on the confirmation dialog after + clicking on an image in the Library --> + <method name="addNewSyncImage" args="urlname,posx,posy,baseurl,fileName,moduleName,parentPath,room,domain"> + if ($debug) Debug.write("urlname: ",urlname); + var now = new Date(); + //This invokes a Method which is in the remoteWhiteboard.lzx + this.startNewObjectSyncProcess.isStarting = true; + this.startNewObjectSyncProcess.uniqueObjectSyncName = fileName + now.getTime(); + this.startNewObjectSyncProcess.doCall(); + this.addNewImage(urlname,posx,posy,baseurl,fileName, + moduleName,parentPath,room,domain, + this.startNewObjectSyncProcess.uniqueObjectSyncName,false); + </method> + + <!-- standard add Function --> + <method name="addNewImage" args="urlname,posx,posy,baseurl,fileName,moduleName,parentPath,room,domain,uniqueObjectSyncName,isLocalSync"> + if ($debug) Debug.write("urlname posx: ",urlname,posx); + this.addImageToLayer(this,'image'+this.getCounter(),urlname, + posx,posy,0,0, + true, + baseurl,fileName,moduleName,parentPath,room,domain,uniqueObjectSyncName,isLocalSync); + </method> + <!-- alterModus => this is added by the mod not remotely - --> - <method name="addImageToLayer" args="obj,nameing,urlname,posx,posy,width,height,alterModus,baseurl,fileName,moduleName,parentPath,room,domain,uniqueObjectSyncName,isLocalSync"> - <![CDATA[ - if ($debug) Debug.write("addImageToLayer ",urlname); - + <method name="addImageToLayer" args="obj,nameing,urlname,posx,posy,width,height,alterModus,baseurl,fileName,moduleName,parentPath,room,domain,uniqueObjectSyncName,isLocalSync"> + <![CDATA[ + if ($debug) Debug.write("addImageToLayer ",urlname); + var downloadurl = canvas.getUrl() + urlname + "?uid=" + canvas.publicSID; - if ($debug) Debug.write("addImageToLayer urlname : ", downloadurl); + if ($debug) Debug.write("addImageToLayer urlname : ", downloadurl); if ($debug) Debug.write("alterModus: ",alterModus); - this.currentlayer = new lz.imageForDrawView(obj,{ - src: downloadurl,refObj:this,name:nameing,x:posx,y:posy, - remotewidth:width,remoteheight:height, - downloadurl:urlname,alterModus:alterModus, - baseurl:baseurl,fileName:fileName,moduleName:moduleName, - parentPath:parentPath,room:room,domain:domain, - uniqueObjectSyncName:uniqueObjectSyncName, - isLocalSync:isLocalSync}); + this.currentlayer = new lz.imageForDrawView(obj,{ + src: downloadurl,refObj:this,name:nameing,x:posx,y:posy, + remotewidth:width,remoteheight:height, + downloadurl:urlname,alterModus:alterModus, + baseurl:baseurl,fileName:fileName,moduleName:moduleName, + parentPath:parentPath,room:room,domain:domain, + uniqueObjectSyncName:uniqueObjectSyncName, + isLocalSync:isLocalSync}); - //Add Layer to global Layer - return this.currentlayer; + //Add Layer to global Layer + return this.currentlayer; ]]> - </method> - - <!-- - @deprecated - --> - <method name="addImageToLayerRecorded" args="obj,nameing,urlname,posx,posy,width,height,alterModus,baseurl,fileName,moduleName,parentPath,room,domain"> - <![CDATA[ - //only show if it is not part of wml-file-object - if (!this.isWmlLoaderImage) { - this.loadimageDataWinRef = new lz.loadWhiteboardWindow(canvas.main_content._content.inner,{refObj:this}); - this.loadimageDataWinRef.setMessage(canvas.getLabelName(this.imageLoadMessageId)); - } - var src = baseurl+'?fileName='+fileName+'&moduleName='+moduleName+'&parentPath='+parentPath+'&room_id='+room+'&sid='+canvas.sessionId; - - this.currentlayer = new lz.imageForDrawView(obj,{ - src:src,refObj:this,name:nameing,x:posx,y:posy, - downloadurl:urlname,remotewidth:width,remoteheight:height, - alterModus:alterModus,baseurl:baseurl,fileName:fileName, - moduleName:moduleName,parentPath:parentPath, - room:room,domain:domain,recorderModus:true}); + </method> - this.parent.parent.isloadingImage.sendEvent(this.currentlayer); - //this.parent._loading.setAttribute('visible',true); - //Add Layer to global Layer - return this.currentlayer; - ]]> - </method> - - <method name="incomingScreenSharing" args="value"> - <![CDATA[ + + <method name="incomingScreenSharing" args="value"> + <![CDATA[ //only do if last image has been loading successfully - if (!this.isScreenImageLoading){ - this.isScreenImageLoading = true; - var downloadurl = canvas.getUrl() + 'ScreenViewHandler?' - +'fileName='+encodeURIComponent(value.fileName) - +'&room='+hib.currentroomid - +'&domain='+hib.conferencedomain - +'&sid='+canvas.sessionId; - - //Debug.write("incomingScreenSharing URL: ",downloadurl); - if (this.screenImageRefNumber==1){ - this.screenImageRef1 = new lz.imageForScreenViewer(this,{visible:false,src:downloadurl,refObj:this,name:'screen1',x:0,y:0,downloadurl:downloadurl}); - this.screenImageRefNumber = 2; - } else if (this.screenImageRefNumber==2){ - this.screenImageRef2 = new lz.imageForScreenViewer(this,{visible:false,src:downloadurl,refObj:this,name:'screen2',x:0,y:0,downloadurl:downloadurl}); - this.screenImageRefNumber = 1; - } - this.setNewScreenUserName.sendEvent('Screen of User: '+value.user.firstname+','+value.user.lastname); - } else { - //Debug.write("frame dropped!"); - Debug.warn("frame dropped!"); - (new lz.singletonErrorPopupHolder()).setError(canvas.getLabelName(240)); - } + if (!this.isScreenImageLoading){ + this.isScreenImageLoading = true; + var downloadurl = canvas.getUrl() + 'ScreenViewHandler?' + +'fileName='+encodeURIComponent(value.fileName) + +'&room='+hib.currentroomid + +'&domain='+hib.conferencedomain + +'&sid='+canvas.sessionId; + + //Debug.write("incomingScreenSharing URL: ",downloadurl); + if (this.screenImageRefNumber==1){ + this.screenImageRef1 = new lz.imageForScreenViewer(this,{visible:false,src:downloadurl,refObj:this,name:'screen1',x:0,y:0,downloadurl:downloadurl}); + this.screenImageRefNumber = 2; + } else if (this.screenImageRefNumber==2){ + this.screenImageRef2 = new lz.imageForScreenViewer(this,{visible:false,src:downloadurl,refObj:this,name:'screen2',x:0,y:0,downloadurl:downloadurl}); + this.screenImageRefNumber = 1; + } + this.setNewScreenUserName.sendEvent('Screen of User: '+value.user.firstname+','+value.user.lastname); + } else { + //Debug.write("frame dropped!"); + Debug.warn("frame dropped!"); + (new lz.singletonErrorPopupHolder()).setError(canvas.getLabelName(240)); + } ]]> - </method> - - <!-- - TODO: Make new Base Class including the Screen sharing Functions - --> - <method name="toggleVisibleScreenSharing"> - if (this.screenImageRefNumber==1){ - if (this.screenImageRef1) this.screenImageRef1.destroy(); - this.screenImageRef2.setAttribute('visible',true); - } else if (this.screenImageRefNumber==2){ - this.screenImageRef1.setAttribute('visible',true); - if (this.screenImageRef2) this.screenImageRef2.destroy(); - } - this.isScreenImageLoading = false; - </method> + </method> + + <!-- + TODO: Make new Base Class including the Screen sharing Functions + --> + <method name="toggleVisibleScreenSharing"> + if (this.screenImageRefNumber==1){ + if (this.screenImageRef1) this.screenImageRef1.destroy(); + this.screenImageRef2.setAttribute('visible',true); + } else if (this.screenImageRefNumber==2){ + this.screenImageRef1.setAttribute('visible',true); + if (this.screenImageRef2) this.screenImageRef2.destroy(); + } + this.isScreenImageLoading = false; + </method> <!-- actionObject => attributes neccessary for loading image @@ -163,48 +137,48 @@ <!-- method adds a new Image to the Layer, but without making an Update-Event, Image added by remote host --> - <method name="addImageToLayerHistorySynced" args="actionObject,refObj"> - if ($debug) Debug.write("addImageToLayerHistory: ",actionObject,refObj); - //start sync process using the remote uniqueObjectSyncName as identifier - //This invokes a Method which is in the remoteWhiteboard.lzx - this.startNewObjectSyncProcess.isStarting = false; - this.startNewObjectSyncProcess.uniqueObjectSyncName = actionObject[8]; - this.startNewObjectSyncProcess.doCall(); - this.addImageToLayer(refObj,actionObject[actionObject.length-1],actionObject[1], - actionObject[actionObject.length-5],actionObject[actionObject.length-4], - actionObject[actionObject.length-3],actionObject[actionObject.length-2], - false, - actionObject[2],actionObject[3],actionObject[4],actionObject[5], - actionObject[6],actionObject[7],actionObject[8],false); - - this.doSWFDocumentStatus(this.currentlayer,actionObject[actionObject.length-7]); - </method> - - <!--- + <method name="addImageToLayerHistorySynced" args="actionObject,refObj"> + if ($debug) Debug.write("addImageToLayerHistory: ",actionObject,refObj); + //start sync process using the remote uniqueObjectSyncName as identifier + //This invokes a Method which is in the remoteWhiteboard.lzx + this.startNewObjectSyncProcess.isStarting = false; + this.startNewObjectSyncProcess.uniqueObjectSyncName = actionObject[8]; + this.startNewObjectSyncProcess.doCall(); + this.addImageToLayer(refObj,actionObject[actionObject.length-1],actionObject[1], + actionObject[actionObject.length-5],actionObject[actionObject.length-4], + actionObject[actionObject.length-3],actionObject[actionObject.length-2], + false, + actionObject[2],actionObject[3],actionObject[4],actionObject[5], + actionObject[6],actionObject[7],actionObject[8],false); + + this.doSWFDocumentStatus(this.currentlayer,actionObject[actionObject.length-7]); + </method> + + <!--- invoke by the initial Loading process in remoteWhiteboard.lzx, does not invoke any Update Handler once this object is loaded, it will throw an Update event of kind addImageToLayerHistoryToLocalLoaded - --> - <method name="addImageToLayerHistoryToLocal" args="actionObject,refObj"> - if ($debug) Debug.write("addImageToLayerHistoryToLocal: ",actionObject,refObj); - this.addImageToLayer(refObj,actionObject[actionObject.length-1],actionObject[1], - actionObject[actionObject.length-5],actionObject[actionObject.length-4], - actionObject[actionObject.length-3],actionObject[actionObject.length-2], - false, - actionObject[2],actionObject[3],actionObject[4],actionObject[5], - actionObject[6],actionObject[7],actionObject[8],true); - </method> - - <!-- - this handler is implemented also in remoteWhiteboard.lzx to sync a Local Object list - but throws NO Update Event, cause its only needed Locally, the whole Sync Process - has a different Sync-Object for Loading the complete Object List from the Sever. - Each Object is loaded Locally, once all Objects are loaded the Complete-Event is broadcasted - to the server, but every Item on the List is only controlled locally - --> - <handler name="addImageToLayerHistoryToLocalLoaded" args="objRef"> - if ($debug) Debug.write("addImageToLayerHistoryToLocal: ",objRef); + --> + <method name="addImageToLayerHistoryToLocal" args="actionObject,refObj"> + if ($debug) Debug.write("addImageToLayerHistoryToLocal: ",actionObject,refObj); + this.addImageToLayer(refObj,actionObject[actionObject.length-1],actionObject[1], + actionObject[actionObject.length-5],actionObject[actionObject.length-4], + actionObject[actionObject.length-3],actionObject[actionObject.length-2], + false, + actionObject[2],actionObject[3],actionObject[4],actionObject[5], + actionObject[6],actionObject[7],actionObject[8],true); + </method> + + <!-- + this handler is implemented also in remoteWhiteboard.lzx to sync a Local Object list + but throws NO Update Event, cause its only needed Locally, the whole Sync Process + has a different Sync-Object for Loading the complete Object List from the Sever. + Each Object is loaded Locally, once all Objects are loaded the Complete-Event is broadcasted + to the server, but every Item on the List is only controlled locally + --> + <handler name="addImageToLayerHistoryToLocalLoaded" args="objRef"> + if ($debug) Debug.write("addImageToLayerHistoryToLocal: ",objRef); this.syncImageRefObj = objRef; this.registerNewImage(this.syncImageRefObj.src, @@ -214,29 +188,15 @@ this.syncImageRefObj.moduleName,this.syncImageRefObj.parentPath, this.syncImageRefObj.room,this.syncImageRefObj.domain, false,this.syncImageRefObj.uniqueObjectSyncName,this.getSWFDocumentStatus(), - this.getZIndex()); - </handler> - - <!--- @keywords deprecated - TODO: uniqueObjectSyncName missing - --> - <method name="addImageToLayerHistoryRecorded" args="actionObject,refObj,isWmlLoader"> - this.isWmlLoaderImage = isWmlLoader; - this.addImageToLayerRecorded(refObj, - actionObject[actionObject.length-1],actionObject[1], - actionObject[actionObject.length-5],actionObject[actionObject.length-4], - actionObject[actionObject.length-3],actionObject[actionObject.length-2], - false, - actionObject[2],actionObject[3],actionObject[4],actionObject[5], - actionObject[6],actionObject[7]); - </method> - - <method name="registerNewImage" args="urlname,posx,posy,width,height,baseurl,fileName,moduleName,parentPath,room,domain,doCallUpdate,uniqueObjectSyncName,swfObj,zIndex"> + this.getZIndex()); + </handler> + + <method name="registerNewImage" args="urlname,posx,posy,width,height,baseurl,fileName,moduleName,parentPath,room,domain,doCallUpdate,uniqueObjectSyncName,swfObj,zIndex"> if ($debug) Debug.write("registerNewImage doCallUpdate: ",doCallUpdate); if ($debug) Debug.write("registerNewImage swfObj: ",swfObj); var actionObject = new Array(); - actionObject.push('image'); - actionObject.push(urlname); + actionObject.push('image'); + actionObject.push(urlname); actionObject.push(baseurl); actionObject.push(fileName); actionObject.push(moduleName); @@ -247,15 +207,23 @@ actionObject.push(zIndex);//-8 actionObject.push(swfObj);//-7 actionObject.push(this.counter);//-6 - actionObject.push(posx);//-5 - actionObject.push(posy);//-4 - actionObject.push(width);//-3 - actionObject.push(height);//-2 - actionObject.push(this.currentlayer.name);//-1 - this.baseactionobjectList.push(actionObject); - this.checkStepLayers(); - if (doCallUpdate) this.onsharedMessage('draw',actionObject); - </method> + actionObject.push(posx);//-5 + actionObject.push(posy);//-4 + actionObject.push(width);//-3 + actionObject.push(height);//-2 + actionObject.push(this.currentlayer.name);//-1 + this.checkStepLayers(); + for (var i = this.baseactionobjectList.length - 1; i > -1; --i) { + var l = this.baseactionobjectList[i]; + if (this.currentlayer.name == l[l.length - 1]) { + this.baseactionobjectList.splice(i, 1); + break; + } + } + this.baseactionobjectList.push(actionObject); + if ($debug) Debug.write(" :: -image- baseactionobjectList.push :: ", this.baseactionobjectList.length, this.baseactionobjectList); + if (doCallUpdate) this.onsharedMessage('draw',actionObject); + </method> <!-- adds the Image to the Layers and throws a onsharedMessage, @@ -277,13 +245,13 @@ this.syncImageRefObj.moduleName,this.syncImageRefObj.parentPath, this.syncImageRefObj.room,this.syncImageRefObj.domain, true,this.syncImageRefObj.uniqueObjectSyncName,this.getSWFDocumentStatus(), - this.getZIndex()); + this.getZIndex()); </method> <!--- @keywords deprecated - TODO: check Recorder Modus - --> + TODO: check Recorder Modus + --> <method name="storeTempValsAndLoadSyncListRecording" args="objRef"> if ($debug) Debug.write("########### storeTempValsAndLoadSyncListRecording: ",objRef); this.syncImageRefObj = objRef; @@ -301,29 +269,29 @@ this.syncImageRefObj.moduleName,this.syncImageRefObj.parentPath, this.syncImageRefObj.room,this.syncImageRefObj.domain, false,this.syncImageRefObj.uniqueObjectSyncName,this.getSWFDocumentStatus(), - this.getZIndex()); + this.getZIndex()); //This invokes a Method which is in the remoteWhiteboard.lzx this.sendCompletedObjectSyncEvent.uniqueObjectSyncName = this.syncImageRefObj.uniqueObjectSyncName; this.sendCompletedObjectSyncEvent.doCall(); </method> - - <!--- @keywords deprecated - TODO: Check recorder Modus - --> - <method name="doRegisterAfterLoadingOrRecording"> - if ($debug) Debug.write("########### doRegisterAfterLoadingOrRecording"); + + <!--- @keywords deprecated + TODO: Check recorder Modus + --> + <method name="doRegisterAfterLoadingOrRecording"> + if ($debug) Debug.write("########### doRegisterAfterLoadingOrRecording"); this.imageSyncMessageText = canvas.getLabelName(this.imageSyncMessageId); //now send notifications to connected clients this.setAttribute('drawmodus','image'); this.registerNewImage(this.syncImageRefObj.src, - this.syncImageRefObj.x,this.syncImageRefObj.y, - this.syncImageRefObj.width,this.syncImageRefObj.height, - this.syncImageRefObj.baseurl,this.syncImageRefObj.fileName, - this.syncImageRefObj.moduleName,this.syncImageRefObj.parentPath, - this.syncImageRefObj.room,this.syncImageRefObj.domain, - false,this.syncImageRefObj.uniqueObjectSyncName,this.getSWFDocumentStatus(), - this.getZIndex()); - </method> + this.syncImageRefObj.x,this.syncImageRefObj.y, + this.syncImageRefObj.width,this.syncImageRefObj.height, + this.syncImageRefObj.baseurl,this.syncImageRefObj.fileName, + this.syncImageRefObj.moduleName,this.syncImageRefObj.parentPath, + this.syncImageRefObj.room,this.syncImageRefObj.domain, + false,this.syncImageRefObj.uniqueObjectSyncName,this.getSWFDocumentStatus(), + this.getZIndex()); + </method> </class>
Modified: openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/drawViewNew.lzx URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/drawViewNew.lzx?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/drawViewNew.lzx (original) +++ openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/drawViewNew.lzx Thu Aug 11 06:12:30 2016 @@ -53,7 +53,7 @@ parent.redrawRectItemByScaling(this); } else if (this.name.indexOf('ellipse')>=0) { parent.redrawEllipseItemByScaling(this); - } + } } ]]> </handler> @@ -70,11 +70,11 @@ parent.redrawRectItemByScaling(this); } else if (this.name.indexOf('ellipse')>=0) { parent.redrawEllipseItemByScaling(this); - } + } } - ]]> + ]]> </handler> - <!-- + <!-- <dragstate name="dragger" drag_axis="both" drag_min_x="0" drag_max_x="$once{parent.width - this.width}" Modified: openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/remoteWhiteboard.lzx URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/remoteWhiteboard.lzx?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/remoteWhiteboard.lzx (original) +++ openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/remoteWhiteboard.lzx Thu Aug 11 06:12:30 2016 @@ -222,7 +222,8 @@ if ($debug) Debug.write("[store actionObject] ",actionObject); this.baseactionobjectList.push(actionObject); - + if ($debug) Debug.write(" :: baseactionobjectList.push :: ", this.baseactionobjectList.length, this.baseactionobjectList); + ]]> </method> Modified: openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx (original) +++ openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx Thu Aug 11 06:12:30 2016 @@ -75,7 +75,7 @@ + canvas.publicSID + '&preview=true'; parent._content._preview.imagePreview.setAttribute("src", downloadurl) parent._content._preview.bringToFront(); - + if (parent.sendInit) { parent.parent.sendNewVideoRemote(parent); } @@ -120,7 +120,7 @@ this._content.playVideoStream(this.recordingName, 0); } ]]> - </method> + </method> <!--- calculates the new x, y, width and height of the video so that it is 100% @@ -170,34 +170,34 @@ <method name="setDuration"> <![CDATA[ - if ($debug) Debug.write("setDuration ",this.deltaInSeconds); - var tString = ""; - if (this.deltaInSeconds > 60) { - var minutes = Math.floor(this.deltaInSeconds / 60); - var restSeconds = Math.round(this.deltaInSeconds) - (minutes * 60); - tString = minutes + " min " + restSeconds + " sec"; - } else { - tString = Math.round(this.deltaInSeconds) + " sec"; - } - this._progress._progressbar._duration.setAttribute("text",tString); + if ($debug) Debug.write("setDuration ",this.deltaInSeconds); + var tString = ""; + if (this.deltaInSeconds > 60) { + var minutes = Math.floor(this.deltaInSeconds / 60); + var restSeconds = Math.round(this.deltaInSeconds) - (minutes * 60); + tString = minutes + " min " + restSeconds + " sec"; + } else { + tString = Math.round(this.deltaInSeconds) + " sec"; + } + this._progress._progressbar._duration.setAttribute("text",tString); ]]> </method> <method name="calcProgressBar"> <![CDATA[ - if ($debug) Debug.write("calcProgressBar ",this.currentTime); - this._progress._progressbar._pointer.setAttribute("visibility","visible"); - var tString = ""; - if (this.currentTime > 60) { - var minutes = Math.floor(this.currentTime / 60); - var restSeconds = Math.round(this.currentTime) - (minutes * 60); - tString = minutes + " min " + restSeconds + " sec"; - } else { - tString = Math.round(this.currentTime) + " sec"; - } - var tNewX = Math.round((this._progress._progressbar.width / this.deltaInSeconds) * this.currentTime); - this._progress._progressbar._time.setAttribute("text", tString); - this._progress._progressbar._pointer.setAttribute("x", tNewX); + if ($debug) Debug.write("calcProgressBar ", this.currentTime); + this._progress._progressbar._pointer.setAttribute("visibility","visible"); + var tString = ""; + if (this.currentTime > 60) { + var minutes = Math.floor(this.currentTime / 60); + var restSeconds = Math.round(this.currentTime) - (minutes * 60); + tString = minutes + " min " + restSeconds + " sec"; + } else { + tString = Math.round(this.currentTime) + " sec"; + } + var tNewX = Math.round((this._progress._progressbar.width / this.deltaInSeconds) * this.currentTime); + this._progress._progressbar._time.setAttribute("text", tString); + this._progress._progressbar._pointer.setAttribute("x", tNewX); ]]> </method> @@ -214,7 +214,7 @@ <method name="toggleStream"> if (canvas.ismoderator && this.isPaused) { - this.startStreamPlay(); + this.startStreamPlay(); } </method> @@ -223,7 +223,7 @@ <attribute name="timerDelegateStarted" value="false" type="boolean"/> <handler name="oninit"> - this.timerDelegate = new LzDelegate( this, "calcProgressBar" ); + this.timerDelegate = new LzDelegate(this, "calcProgressBar"); </handler> <method name="playVideoStream" args="streamName, delay"> @@ -253,11 +253,11 @@ </handler> <method name="calcProgressBar" args="tObjRef"> - //if ($debug) Debug.write("calcProgressBar updateRecordingStreamTime",this._ns.time) + if ($debug) Debug.write("calcProgressBar:: updateRecordingStreamTime", this.timerDelegateStarted, this._ns.time) parent.currentTime = this._ns.time; parent.calcProgressBar(); if (this.timerDelegateStarted) { - lz.Timer.addTimer( this.timerDelegate , 1000 ); + lz.Timer.addTimer(this.timerDelegate , 1000); } </method> <view name="_preview" x="0" y="0" width="0" height="0" > @@ -265,7 +265,7 @@ <handler name="onclick"> if ($debug) Debug.write("onclick -- toggleStream"); parent.parent.toggleStream(); - </handler> + </handler> <view width="60" height="40" valign="middle" opacity="0.7" align="center" bgcolor="0xFFFFFF"> <view resource="lz_recorder_play" valign="middle" align="center" /> </view> Modified: openmeetings/application/branches/3.2.x/openmeetings-util/pom.xml URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-util/pom.xml?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-util/pom.xml (original) +++ openmeetings/application/branches/3.2.x/openmeetings-util/pom.xml Thu Aug 11 06:12:30 2016 @@ -44,6 +44,24 @@ </plugin> </plugins> </build> + <profiles> + <profile> + <id>Jenkins</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <excludes> + <exclude>**/TestStoredFile.java</exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </build> + </profile> + </profiles> <dependencies> <dependency> <groupId>org.red5</groupId> Copied: openmeetings/application/branches/3.2.x/openmeetings-util/src/test/java/org/apache/openmeetings/util/TestStoredFile.java (from r1755906, openmeetings/application/branches/3.2.x/openmeetings-util/src/test/java/org/apache/openmeetings/util/crypt/TestStoredFile.java) URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-util/src/test/java/org/apache/openmeetings/util/TestStoredFile.java?p2=openmeetings/application/branches/3.2.x/openmeetings-util/src/test/java/org/apache/openmeetings/util/TestStoredFile.java&p1=openmeetings/application/branches/3.2.x/openmeetings-util/src/test/java/org/apache/openmeetings/util/crypt/TestStoredFile.java&r1=1755906&r2=1755907&rev=1755907&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-util/src/test/java/org/apache/openmeetings/util/crypt/TestStoredFile.java (original) +++ openmeetings/application/branches/3.2.x/openmeetings-util/src/test/java/org/apache/openmeetings/util/TestStoredFile.java Thu Aug 11 06:12:30 2016 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.openmeetings.util.crypt; +package org.apache.openmeetings.util; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertFalse; Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java (original) +++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java Thu Aug 11 06:12:30 2016 @@ -225,7 +225,8 @@ public abstract class FileTreePanel exte } public void update(IPartialPageRequestHandler handler) { - handler.add(trees); + updateSizes(); + handler.add(sizes, trees); } void updateNode(AjaxRequestTarget target, FileItem fi) { Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original) +++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Thu Aug 11 06:12:30 2016 @@ -170,7 +170,7 @@ public class RoomPanel extends BasePanel public void onDrop(AjaxRequestTarget target, Component component) { Object o = component.getDefaultModelObject(); if (activeWbId > -1 && o instanceof FileItem) { - sendFileToWb((FileItem)o); + sendFileToWb((FileItem)o, false); } } }; @@ -529,13 +529,13 @@ public class RoomPanel extends BasePanel return publishingUser; } - public void sendFileToWb(FileItem fi) { + public void sendFileToWb(FileItem fi, boolean clean) { if (activeWbId > -1) { if (fi.getType() == FileItem.Type.WmlFile) { getBean(ConferenceLibrary.class).sendToWhiteboard(getClient().getUid(), activeWbId, fi); } else { String url = urlFor(new RoomResourceReference(), new PageParameters().add("id", fi.getId())).toString(); - getBean(ScopeApplicationAdapter.class).sendToWhiteboard(getClient().getUid(), activeWbId, fi, url); + getBean(ScopeApplicationAdapter.class).sendToWhiteboard(getClient().getUid(), activeWbId, fi, url, clean); } } } Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java (original) +++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java Thu Aug 11 06:12:30 2016 @@ -18,6 +18,14 @@ */ package org.apache.openmeetings.web.room.sidebar; +import static org.apache.openmeetings.util.OmFileHelper.getHumanSize; +import static org.apache.openmeetings.web.app.Application.getBean; +import static org.apache.openmeetings.web.app.WebSession.getUserId; + +import org.apache.openmeetings.core.data.file.FileUtils; +import org.apache.openmeetings.db.dao.file.FileExplorerItemDao; +import org.apache.openmeetings.db.dao.record.RecordingDao; +import org.apache.openmeetings.db.dto.record.RecordingContainerData; import org.apache.openmeetings.db.entity.file.FileItem; import org.apache.openmeetings.web.common.tree.FileTreePanel; import org.apache.openmeetings.web.room.RoomPanel; @@ -36,14 +44,21 @@ public class RoomFilePanel extends FileT @Override public void updateSizes() { - // TODO Auto-generated method stub - + FileExplorerItemDao dao = getBean(FileExplorerItemDao.class); + FileUtils utils = getBean(FileUtils.class); + RecordingContainerData sizeData = getBean(RecordingDao.class).getContainerData(getUserId()); + long userSize = utils.getSize(dao.getByOwner(getUserId())); + long roomSize = utils.getSize(dao.getByRoom(room.getRoom().getId())); + if (sizeData != null) { + userSize += sizeData.getUserHomeSize(); + roomSize += sizeData.getPublicFileSize(); + } + homeSize.setObject(getHumanSize(userSize)); + publicSize.setObject(getHumanSize(roomSize)); } @Override protected void update(AjaxRequestTarget target, FileItem f) { - // TODO Auto-generated method stub - } @Override Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.html URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.html?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.html (original) +++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.html Thu Aug 11 06:12:30 2016 @@ -31,7 +31,12 @@ </div> <div wicket:id="feedback"></div> <span wicket:id="progress">[progressbar]</span> - <div style="margin-top: 30px;"><input wicket:id="to-wb" type="checkbox"/><label wicket:for="to-wb"><wicket:message key="1312"/></label></div> + <div style="margin-top: 30px;"> + <input wicket:id="to-wb" type="checkbox"/><label wicket:for="to-wb"><wicket:message key="1312"/></label> + <div style="margin-left: 30px;" wicket:id="clean-block"> + <input wicket:id="clean-wb" type="checkbox"/><label wicket:for="clean-wb"><wicket:message key="62"/></label> + </div> + </div> </form> <form wicket:id="name-form"> <input type="hidden" wicket:id="name"/> Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java (original) +++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java Thu Aug 11 06:12:30 2016 @@ -35,12 +35,14 @@ import org.apache.openmeetings.web.room. import org.apache.openmeetings.web.util.BootstrapFileUploadBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior; +import org.apache.wicket.ajax.form.OnChangeAjaxBehavior; import org.apache.wicket.behavior.AttributeAppender; import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.JavaScriptHeaderItem; import org.apache.wicket.markup.head.PriorityHeaderItem; +import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.HiddenField; @@ -66,6 +68,8 @@ public class UploadDialog extends Abstra private final FileUploadField uploadField; private final HiddenField<String> fileName; private final CheckBox toWb = new CheckBox("to-wb", Model.of(false)); + private final WebMarkupContainer cleanBlock = new WebMarkupContainer("clean-block"); + private final CheckBox cleanWb = new CheckBox("clean-wb", Model.of(false)); private final RoomFilePanel roomFiles; private final RoomPanel room; @@ -83,7 +87,16 @@ public class UploadDialog extends Abstra } }; cancel = new DialogButton("close", Application.getString(85)); - form.add(feedback.setOutputMarkupId(true), toWb); + toWb.add(new OnChangeAjaxBehavior() { + private static final long serialVersionUID = 1L; + + @Override + protected void onUpdate(AjaxRequestTarget target) { + target.add(cleanBlock.setVisible(toWb.getModelObject())); + } + }); + form.add(feedback.setOutputMarkupId(true), toWb.setOutputMarkupId(true) + , cleanBlock.add(cleanWb.setOutputMarkupId(true)).setVisible(false).setOutputMarkupPlaceholderTag(true)); form.setMultiPart(true); form.setMaxSize(Bytes.bytes(getBean(ConfigurationDao.class).getMaxUploadSize())); @@ -182,7 +195,7 @@ public class UploadDialog extends Abstra error(result.getLogMessage()); } else { if (toWb.getModelObject()) { - room.sendFileToWb(f); + room.sendFileToWb(f, cleanWb.getModelObject()); } close(target, null); } Modified: openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java (original) +++ openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java Thu Aug 11 06:12:30 2016 @@ -257,15 +257,6 @@ public class FileWebService { } } - private long getSize(List<FileExplorerItem> list) { - long size = 0; - for (FileExplorerItem f : list) { - log.debug("FileExplorerItem fList " + f.getName()); - size += fileUtils.getSizeOfDirectoryAndSubs(f); - } - return size; - } - /** * Get a File Explorer Object by a given Room * @@ -294,11 +285,11 @@ public class FileWebService { // Home File List List<FileExplorerItem> fList = fileDao.getByOwner(userId); - fileExplorerObject.setUser(fList, getSize(fList)); + fileExplorerObject.setUser(fList, fileUtils.getSize(fList)); // Public File List List<FileExplorerItem> rList = fileDao.getByRoom(roomId); - fileExplorerObject.setRoom(rList, getSize(rList)); + fileExplorerObject.setRoom(rList, fileUtils.getSize(rList)); return fileExplorerObject; } else { Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java (original) +++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java Thu Aug 11 06:12:30 2016 @@ -42,6 +42,7 @@ import org.springframework.beans.factory public class FlvExplorerConverter extends BaseConverter { private static final Logger log = Red5LoggerFactory.getLogger(FlvExplorerConverter.class, webAppRootKey); + private static final Pattern p = Pattern.compile("\\d{2,4}(x)\\d{2,4}"); // Spring loaded Beans @Autowired @@ -127,18 +128,14 @@ public class FlvExplorerConverter extend } private static FlvDimension getFlvDimension(String txt) throws Exception { - Pattern p = Pattern.compile("\\d{2,4}(x)\\d{2,4}"); - Matcher matcher = p.matcher(txt); while (matcher.find()) { String foundResolution = txt.substring(matcher.start(), matcher.end()); - String[] resultions = foundResolution.split("x"); - return new FlvDimension(Integer.valueOf(resultions[0]).intValue(), Integer.valueOf(resultions[1]).intValue()); } - throw new Exception("Failed to get FLV dimension: " + txt); + return new FlvDimension(100, 100); // will return 100x100 for non-video to be able to play } } Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileUtils.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileUtils.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileUtils.java (original) +++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileUtils.java Thu Aug 11 06:12:30 2016 @@ -18,12 +18,15 @@ */ package org.apache.openmeetings.core.data.file; +import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION; +import static org.apache.openmeetings.util.OmFileHelper.JPG_EXTENSION; import static org.apache.openmeetings.util.OmFileHelper.thumbImagePrefix; import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import java.util.Locale; import org.apache.openmeetings.db.dao.file.FileExplorerItemDao; @@ -40,19 +43,28 @@ public class FileUtils { @Autowired private FileExplorerItemDao fileDao; - public long getSizeOfDirectoryAndSubs(FileExplorerItem file) { + public long getSize(List<FileExplorerItem> list) { + long size = 0; + for (FileExplorerItem f : list) { + log.debug("FileExplorerItem fList " + f.getName()); + size += getSize(f); + } + return size; + } + + public long getSize(FileExplorerItem file) { try { long fileSize = 0; File base = OmFileHelper.getUploadFilesDir(); if (Type.Image == file.getType()) { - - File tFile = new File(base, file.getHash()); + String fname = String.format("%s%s", file.getHash(), JPG_EXTENSION); + File tFile = new File(base, fname); if (tFile.exists()) { fileSize += tFile.length(); } - File thumbFile = new File(base, thumbImagePrefix + file.getHash()); + File thumbFile = new File(base, thumbImagePrefix + fname); if (thumbFile.exists()) { fileSize += thumbFile.length(); } @@ -66,10 +78,21 @@ public class FileUtils { } } + if (Type.Video == file.getType()) { + //FIXME TODO refactor + File video = new File(OmFileHelper.getStreamsHibernateDir(), "UPLOADFLV_" + file.getId() + MP4_EXTENSION); + if (video.exists()) { + fileSize += video.length(); + } + File thumb = new File(OmFileHelper.getStreamsHibernateDir(), "UPLOADFLV_" + file.getId() + JPG_EXTENSION); + if (thumb.exists()) { + fileSize += thumb.length(); + } + } + log.debug("calling [1] fileDao.update()"); - fileDao.update(file); for (FileExplorerItem child : fileDao.getByParent(file.getId())) { - fileSize += getSizeOfDirectoryAndSubs(child); + fileSize += getSize(child); } return fileSize; Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/WhiteboardManager.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/WhiteboardManager.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/WhiteboardManager.java (original) +++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/WhiteboardManager.java Thu Aug 11 06:12:30 2016 @@ -23,7 +23,6 @@ import static org.apache.openmeetings.ut import java.util.List; import java.util.Map; import java.util.Map.Entry; -import java.util.concurrent.ConcurrentHashMap; import org.apache.openmeetings.db.dto.room.WhiteboardObject; import org.red5.logging.Red5LoggerFactory; @@ -36,8 +35,8 @@ public class WhiteboardManager { @Autowired private WhiteBoardObjectListManagerById wbListManagerById; - @SuppressWarnings({ "rawtypes", "unchecked" }) - public void addWhiteBoardObjectById(Long roomId, Map whiteboardObj, Long whiteBoardId) { + @SuppressWarnings("unchecked") + public void addWhiteBoardObjectById(Long roomId, Map<Integer, Object> whiteboardObj, Long whiteBoardId) { try { log.debug("addWhiteBoardObjectById: ", whiteboardObj); @@ -46,7 +45,7 @@ public class WhiteboardManager { log.debug("action: " + action); log.debug("actionObject: " + whiteboardObj.get(3)); - List actionObject = (List) whiteboardObj.get(3); + List<Object> actionObject = (List<Object>) whiteboardObj.get(3); if (action.equals("moveMap")) { WhiteboardObject whiteboardObject = wbListManagerById.getWhiteBoardObjectListByRoomIdAndWhiteboard(roomId, whiteBoardId); @@ -65,64 +64,16 @@ public class WhiteboardManager { if (!objectType.equals("pointerWhiteBoard")) { String objectOID = actionObject.get(actionObject.size() - 1).toString(); log.debug("objectOID: " + objectOID); - whiteboardObject.getRoomItems().put(objectOID, actionObject); + whiteboardObject.add(objectOID, actionObject); wbListManagerById.setWhiteBoardObjectListRoomObjAndWhiteboardId(roomId, whiteboardObject, whiteBoardId); } } else if (action.equals("clear")) { WhiteboardObject whiteboardObject = wbListManagerById.getWhiteBoardObjectListByRoomIdAndWhiteboard(roomId, whiteBoardId); - whiteboardObject.setRoomItems(new ConcurrentHashMap<String, List>()); + whiteboardObject.clear(); wbListManagerById.setWhiteBoardObjectListRoomObjAndWhiteboardId(roomId, whiteboardObject, whiteBoardId); } else if (action.equals("delete") || action.equals("undo")) { WhiteboardObject whiteboardObject = wbListManagerById.getWhiteBoardObjectListByRoomIdAndWhiteboard(roomId, whiteBoardId); - String objectOID = actionObject.get(actionObject.size() - 1).toString(); - String objectType = actionObject.get(0).toString(); - log.debug("removal of objectOID: " + objectOID); - - log.debug("removal of objectOID: " + objectOID); - - // Re-Index all items in its zIndex - if (objectType.equals("ellipse") - || objectType.equals("drawarrow") - || objectType.equals("line") - || objectType.equals("paint") - || objectType.equals("rectangle") - || objectType.equals("uline") - || objectType.equals("image") - || objectType.equals("letter") - || objectType.equals("clipart") - || objectType.equals("swf") - || objectType.equals("mindmapnode") - || objectType.equals("flv")) { - - Integer zIndex = Integer.valueOf(actionObject.get(actionObject.size() - 8).toString()); - - log.debug("1|zIndex " + zIndex); - log.debug("2|zIndex " + actionObject.get(actionObject.size() - 8).toString()); - log.debug("3|zIndex " + actionObject.get(actionObject.size() - 8)); - - int l = 0; - for (Object o : actionObject) { - log.debug("4|zIndex " + l + " -- " + o); - l++; - } - - for (Entry<String, List> e : whiteboardObject.getRoomItems().entrySet()) { - List actionObjectStored = e.getValue(); - - Integer zIndexStored = Integer.valueOf(actionObjectStored.get(actionObjectStored.size() - 8).toString()); - - log.debug("zIndexStored|zIndex " + zIndexStored + "|" + zIndex); - - if (zIndexStored >= zIndex) { - zIndexStored -= 1; - log.debug("new-zIndex " + zIndexStored); - } - actionObjectStored.set(actionObjectStored.size() - 8, zIndexStored); - - whiteboardObject.getRoomItems().put(e.getKey(), actionObjectStored); - } - } - whiteboardObject.getRoomItems().remove(objectOID); + whiteboardObject.remove(actionObject); wbListManagerById.setWhiteBoardObjectListRoomObjAndWhiteboardId(roomId, whiteboardObject, whiteBoardId); } else if (action.equals("size") || action.equals("editProp") @@ -134,13 +85,11 @@ public class WhiteboardManager { WhiteboardObject whiteboardObject = wbListManagerById.getWhiteBoardObjectListByRoomIdAndWhiteboard(roomId, whiteBoardId); String objectOID = actionObject.get(actionObject.size() - 1).toString(); // List roomItem = roomList.get(objectOID); - List currentObject = whiteboardObject.getRoomItems().get(objectOID); - if (actionObject.get(0).equals("paint")) { + List<Object> currentObject = whiteboardObject.get(objectOID); + if ("paint".equals(actionObject.get(0))) { actionObject.set(1, currentObject.get(1)); } - whiteboardObject.getRoomItems().put(objectOID, actionObject); - - Map<String, List> roomList = whiteboardObject.getRoomItems(); + whiteboardObject.add(objectOID, actionObject); if (action.equals("swf")) { log.debug("actionObject " + actionObject); @@ -151,8 +100,8 @@ public class WhiteboardManager { log.debug("updateObjectsToSlideNumber :: " + baseObjectName + "," + slidesNumber); - for (Entry<String, List> me : roomList.entrySet()) { - List actionObjectStored = me.getValue(); + for (Entry<String, List<Object>> me : whiteboardObject.entrySet()) { + List<Object> actionObjectStored = me.getValue(); if (actionObjectStored.get(0).equals("ellipse") || actionObjectStored.get(0).equals("drawarrow") @@ -164,7 +113,7 @@ public class WhiteboardManager { || actionObjectStored.get(0).equals("image") || actionObjectStored.get(0).equals("letter")) { - Map swfObj = (Map) actionObjectStored.get(actionObjectStored.size() - 7); + Map<String, Object> swfObj = (Map<String, Object>) actionObjectStored.get(actionObjectStored.size() - 7); log.debug("swfObj :1: " + swfObj); if (swfObj != null) { @@ -185,10 +134,8 @@ public class WhiteboardManager { } else if (action.equals("clearSlide")) { WhiteboardObject whiteboardObject = wbListManagerById.getWhiteBoardObjectListByRoomIdAndWhiteboard(roomId, whiteBoardId); - Map roomList = whiteboardObject.getRoomItems(); - - for (String objectName : (List<String>) actionObject) { - roomList.remove(objectName); + for (Object objectName : actionObject) { + whiteboardObject.remove(objectName); } wbListManagerById.setWhiteBoardObjectListRoomObjAndWhiteboardId(roomId, whiteboardObject, whiteBoardId); Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java (original) +++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java Thu Aug 11 06:12:30 2016 @@ -160,7 +160,7 @@ public class ConferenceLibrary implement List<?> roomItems = LibraryWmlLoader.loadWmlFile(fi.getHash()); - Map<Integer, String> wbClear = new HashMap<>(); + Map<Integer, Object> wbClear = new HashMap<>(); wbClear.put(2, "clear"); wbClear.put(3, null); Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original) +++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Thu Aug 11 06:12:30 2016 @@ -1406,7 +1406,7 @@ public class ScopeApplicationAdapter ext , fuid // uniquObjectSyncName //17 , fi.getName() // standardFileName //18 , true // fullFit //19 FIXME TODO - , 1 // zIndex //-8 FIXME TODO + , 0 // zIndex //-8 , null //-7 , 0 // this.counter //-6 FIXME TODO , 0 // posx //-5 @@ -1427,7 +1427,7 @@ public class ScopeApplicationAdapter ext , false // 3: false //playRemote , size.x // 4: 416 , size.y // 5: 240 - , 1 // 6: 1 // z-index + , 0 // 6: 1 // z-index , null // 7: null //TODO , 0 // 8: 0 //TODO // counter , 0 // 9: 0 //TODO // x @@ -1438,7 +1438,7 @@ public class ScopeApplicationAdapter ext ); } - public void sendToWhiteboard(String uid, Long wbId, FileItem fi, String url) { + public void sendToWhiteboard(String uid, Long wbId, FileItem fi, String url, boolean clean) { ClientSessionInfo csi = sessionManager.getClientByPublicSIDAnyServer(uid); if (csi == null) { log.warn("No client was found to send Wml:: {}", uid); @@ -1459,6 +1459,13 @@ public class ScopeApplicationAdapter ext break; default: } + if (clean) { + Map<Integer, Object> wbClear = new HashMap<>(); + wbClear.put(2, "clear"); + wbClear.put(3, null); + + sendToScope(client.getRoomId(), "sendVarsToWhiteboardById", new Object[] { wbClear }); + } sendToWhiteboard(client, Arrays.asList("whiteboard", new Date(), "draw", wbObject), wbId); } Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java (original) +++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java Thu Aug 11 06:12:30 2016 @@ -18,21 +18,28 @@ */ package org.apache.openmeetings.db.dto.room; +import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey; + import java.util.Date; import java.util.List; import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -public class WhiteboardObject { +import org.red5.logging.Red5LoggerFactory; +import org.slf4j.Logger; +public class WhiteboardObject { + private static final Logger log = Red5LoggerFactory.getLogger(WhiteboardObject.class, webAppRootKey); private long whiteBoardId; private Integer x = 0; private Integer y = 0; private Integer zoom = 100; private Boolean fullFit = true; - @SuppressWarnings("rawtypes") - private Map<String, List> roomItems = new ConcurrentHashMap<>(); + private Map<String, List<Object>> roomItems = new ConcurrentHashMap<>(); private Date created = new Date(); + private int zIndex = 1; public WhiteboardObject() {} @@ -60,16 +67,6 @@ public class WhiteboardObject { this.y = y; } - @SuppressWarnings("rawtypes") - public Map<String, List> getRoomItems() { - return roomItems; - } - - @SuppressWarnings("rawtypes") - public void setRoomItems(Map<String, List> roomItems) { - this.roomItems = roomItems; - } - public Date getCreated() { return created; } @@ -94,4 +91,81 @@ public class WhiteboardObject { this.fullFit = fullFit; } + public void clear() { + roomItems.clear(); + zIndex = 1; + } + + public void add(String oid, List<Object> actionObject) { + Object type = actionObject.size() > 0 ? actionObject.get(0) : ""; + if (actionObject.size() > 8 && ("swf".equals(type) || "image".equals(type) || "flv".equals(type))) { + Integer zInd = (Integer)actionObject.get(actionObject.size() - 8); + if (zInd == null || zInd == 0 || zInd < zIndex) { + actionObject.set(actionObject.size() - 8, zIndex++); + } + } + roomItems.put(oid, actionObject); + } + + public List<Object> get(String oid) { + return roomItems.get(oid); + } + + public Set<Entry<String, List<Object>>> entrySet() { + return roomItems.entrySet(); + } + + public void remove(Object oid) { + roomItems.remove(oid); + } + + public void remove(List<Object> actionObject) { + String oid = actionObject.get(actionObject.size() - 1).toString(); + String type = actionObject.get(0).toString(); + log.debug("Removal of object: oid = {}, type = {} ", oid, type); + + /* I believe this is redundant + // Re-Index all items in its zIndex + if (type.equals("ellipse") + || type.equals("drawarrow") + || type.equals("line") + || type.equals("paint") + || type.equals("rectangle") + || type.equals("uline") + || type.equals("image") + || type.equals("letter") + || type.equals("clipart") + || type.equals("swf") + || type.equals("mindmapnode") + || type.equals("flv")) { + + Integer zIndex = Integer.valueOf(actionObject.get(actionObject.size() - 8).toString()); + + log.debug("1|zIndex " + zIndex); + log.debug("2|zIndex " + actionObject.get(actionObject.size() - 8).toString()); + log.debug("3|zIndex " + actionObject.get(actionObject.size() - 8)); + + int l = 0; + for (Object o : actionObject) { + log.debug("4|zIndex " + l + " -- " + o); + l++; + } + + for (Entry<String, List<Object>> e : roomItems.entrySet()) { + List<Object> actionObjectStored = e.getValue(); + + Integer zIndexStored = Integer.valueOf(actionObjectStored.get(actionObjectStored.size() - 8).toString()); + + log.debug("zIndexStored|zIndex " + zIndexStored + "|" + zIndex); + + if (zIndexStored >= zIndex) { + zIndexStored -= 1; + log.debug("new-zIndex " + zIndexStored); + } + actionObjectStored.set(actionObjectStored.size() - 8, zIndexStored); + } + } + */ + roomItems.remove(oid); + } } Modified: openmeetings/application/trunk/openmeetings-util/pom.xml URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/pom.xml?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-util/pom.xml (original) +++ openmeetings/application/trunk/openmeetings-util/pom.xml Thu Aug 11 06:12:30 2016 @@ -44,6 +44,24 @@ </plugin> </plugins> </build> + <profiles> + <profile> + <id>Jenkins</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <excludes> + <exclude>**/TestStoredFile.java</exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </build> + </profile> + </profiles> <dependencies> <dependency> <groupId>org.red5</groupId> Copied: openmeetings/application/trunk/openmeetings-util/src/test/java/org/apache/openmeetings/util/TestStoredFile.java (from r1755906, openmeetings/application/trunk/openmeetings-util/src/test/java/org/apache/openmeetings/util/crypt/TestStoredFile.java) URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/src/test/java/org/apache/openmeetings/util/TestStoredFile.java?p2=openmeetings/application/trunk/openmeetings-util/src/test/java/org/apache/openmeetings/util/TestStoredFile.java&p1=openmeetings/application/trunk/openmeetings-util/src/test/java/org/apache/openmeetings/util/crypt/TestStoredFile.java&r1=1755906&r2=1755907&rev=1755907&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-util/src/test/java/org/apache/openmeetings/util/crypt/TestStoredFile.java (original) +++ openmeetings/application/trunk/openmeetings-util/src/test/java/org/apache/openmeetings/util/TestStoredFile.java Thu Aug 11 06:12:30 2016 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.openmeetings.util.crypt; +package org.apache.openmeetings.util; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertFalse; Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java Thu Aug 11 06:12:30 2016 @@ -225,7 +225,8 @@ public abstract class FileTreePanel exte } public void update(IPartialPageRequestHandler handler) { - handler.add(trees); + updateSizes(); + handler.add(sizes, trees); } void updateNode(AjaxRequestTarget target, FileItem fi) { Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Thu Aug 11 06:12:30 2016 @@ -172,7 +172,7 @@ public class RoomPanel extends BasePanel public void onDrop(AjaxRequestTarget target, Component component) { Object o = component.getDefaultModelObject(); if (activeWbId > -1 && o instanceof FileItem) { - sendFileToWb((FileItem)o); + sendFileToWb((FileItem)o, false); } } }; @@ -544,13 +544,13 @@ public class RoomPanel extends BasePanel return publishingUser; } - public void sendFileToWb(FileItem fi) { + public void sendFileToWb(FileItem fi, boolean clean) { if (activeWbId > -1) { if (fi.getType() == FileItem.Type.WmlFile) { getBean(ConferenceLibrary.class).sendToWhiteboard(getClient().getUid(), activeWbId, fi); } else { String url = urlFor(new RoomResourceReference(), new PageParameters().add("id", fi.getId())).toString(); - getBean(ScopeApplicationAdapter.class).sendToWhiteboard(getClient().getUid(), activeWbId, fi, url); + getBean(ScopeApplicationAdapter.class).sendToWhiteboard(getClient().getUid(), activeWbId, fi, url, clean); } } } Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java Thu Aug 11 06:12:30 2016 @@ -18,6 +18,14 @@ */ package org.apache.openmeetings.web.room.sidebar; +import static org.apache.openmeetings.util.OmFileHelper.getHumanSize; +import static org.apache.openmeetings.web.app.Application.getBean; +import static org.apache.openmeetings.web.app.WebSession.getUserId; + +import org.apache.openmeetings.core.data.file.FileUtils; +import org.apache.openmeetings.db.dao.file.FileExplorerItemDao; +import org.apache.openmeetings.db.dao.record.RecordingDao; +import org.apache.openmeetings.db.dto.record.RecordingContainerData; import org.apache.openmeetings.db.entity.file.FileItem; import org.apache.openmeetings.web.common.tree.FileTreePanel; import org.apache.openmeetings.web.room.RoomPanel; @@ -36,14 +44,21 @@ public class RoomFilePanel extends FileT @Override public void updateSizes() { - // TODO Auto-generated method stub - + FileExplorerItemDao dao = getBean(FileExplorerItemDao.class); + FileUtils utils = getBean(FileUtils.class); + RecordingContainerData sizeData = getBean(RecordingDao.class).getContainerData(getUserId()); + long userSize = utils.getSize(dao.getByOwner(getUserId())); + long roomSize = utils.getSize(dao.getByRoom(room.getRoom().getId())); + if (sizeData != null) { + userSize += sizeData.getUserHomeSize(); + roomSize += sizeData.getPublicFileSize(); + } + homeSize.setObject(getHumanSize(userSize)); + publicSize.setObject(getHumanSize(roomSize)); } @Override protected void update(AjaxRequestTarget target, FileItem f) { - // TODO Auto-generated method stub - } @Override Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.html URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.html?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.html (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.html Thu Aug 11 06:12:30 2016 @@ -31,7 +31,12 @@ </div> <div wicket:id="feedback"></div> <span wicket:id="progress">[progressbar]</span> - <div style="margin-top: 30px;"><input wicket:id="to-wb" type="checkbox"/><label wicket:for="to-wb"><wicket:message key="1312"/></label></div> + <div style="margin-top: 30px;"> + <input wicket:id="to-wb" type="checkbox"/><label wicket:for="to-wb"><wicket:message key="1312"/></label> + <div style="margin-left: 30px;" wicket:id="clean-block"> + <input wicket:id="clean-wb" type="checkbox"/><label wicket:for="clean-wb"><wicket:message key="62"/></label> + </div> + </div> </form> <form wicket:id="name-form"> <input type="hidden" wicket:id="name"/> Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java?rev=1755907&r1=1755906&r2=1755907&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java Thu Aug 11 06:12:30 2016 @@ -35,12 +35,14 @@ import org.apache.openmeetings.web.room. import org.apache.openmeetings.web.util.BootstrapFileUploadBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior; +import org.apache.wicket.ajax.form.OnChangeAjaxBehavior; import org.apache.wicket.behavior.AttributeAppender; import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.JavaScriptHeaderItem; import org.apache.wicket.markup.head.PriorityHeaderItem; +import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.HiddenField; @@ -66,6 +68,8 @@ public class UploadDialog extends Abstra private final FileUploadField uploadField; private final HiddenField<String> fileName; private final CheckBox toWb = new CheckBox("to-wb", Model.of(false)); + private final WebMarkupContainer cleanBlock = new WebMarkupContainer("clean-block"); + private final CheckBox cleanWb = new CheckBox("clean-wb", Model.of(false)); private final RoomFilePanel roomFiles; private final RoomPanel room; @@ -83,7 +87,16 @@ public class UploadDialog extends Abstra } }; cancel = new DialogButton("close", Application.getString(85)); - form.add(feedback.setOutputMarkupId(true), toWb); + toWb.add(new OnChangeAjaxBehavior() { + private static final long serialVersionUID = 1L; + + @Override + protected void onUpdate(AjaxRequestTarget target) { + target.add(cleanBlock.setVisible(toWb.getModelObject())); + } + }); + form.add(feedback.setOutputMarkupId(true), toWb.setOutputMarkupId(true) + , cleanBlock.add(cleanWb.setOutputMarkupId(true)).setVisible(false).setOutputMarkupPlaceholderTag(true)); form.setMultiPart(true); form.setMaxSize(Bytes.bytes(getBean(ConfigurationDao.class).getMaxUploadSize())); @@ -182,7 +195,7 @@ public class UploadDialog extends Abstra error(result.getLogMessage()); } else { if (toWb.getModelObject()) { - room.sendFileToWb(f); + room.sendFileToWb(f, cleanWb.getModelObject()); } close(target, null); }
