how could I add an eraser to the HTML5 client?

242 views
Skip to first unread message

Roger

unread,
Aug 4, 2019, 12:46:37 AM8/4/19
to BigBlueButton-dev
Please note that I am still quite new at HTML5 development.  Does anyone have any suggestions on what would be the best way to add an eraser icon to BBB?  TIA.




AddingEraser.png

Fred Dixon

unread,
Aug 4, 2019, 6:52:22 AM8/4/19
to BigBlueButton-dev
Hi Roger,

There has been some discussion on this here


Regards,... Fred


On Sun, Aug 4, 2019 at 12:46 AM Roger <rmo...@ualberta.net> wrote:
Please note that I am still quite new at HTML5 development.  Does anyone have any suggestions on what would be the best way to add an eraser icon to BBB?  TIA.




--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bigbluebutton-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bigbluebutton-dev/dd555ba7-5eb4-431e-bf39-7d74860c2e95%40googlegroups.com.


--
BigBlueButton Developer
@bigbluebutton

Roger Moore

unread,
Aug 7, 2019, 11:24:00 PM8/7/19
to bigblueb...@googlegroups.com
Thanks so much, I see that it is on the roadmap.  Here are some files I have updated to try to create an eraser:

~/dev/bigbluebutton $ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   bigbluebutton-html5/imports/api/annotations/addAnnotation.js
        modified:   bigbluebutton-html5/imports/ui/components/whiteboard/whiteboard-toolbar/toolbar-submenu/component.jsx
        modified:   bigbluebutton-html5/package-lock.json
        modified:   bigbluebutton-html5/package.json
        modified:   bigbluebutton-html5/private/config/settings.yml
        modified:   bigbluebutton-html5/private/locales/en.json

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        bigbluebutton-html5/imports/ui/components/whiteboard/annotations/eraser/
        bigbluebutton-html5/nodesource_setup.sh
        bigbluebutton-html5/public/resources/images/whiteboard-cursor/eraser.png
        package-lock.json

no changes added to commit (use "git add" and/or "git commit -a")
~/dev/bigbluebutton $


But when I try to login to the HTML5 client to test out the eraser, I'm getting this error.  Any suggestions? TIA.

Home


An Error has occured:

Status Code500
Exception Typenull
Messagenull
Exception
java.lang.NullPointerException
	at org.apache.jsp.demoHTML5_jsp.getJoinURLExtended(demoHTML5_jsp.java:259)
	at org.apache.jsp.demoHTML5_jsp._jspService(demoHTML5_jsp.java:1257)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:400)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:344)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:221)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Root Cause

Header List
NameValue
x-forwarded-for68.145.70.223
host127.0.0.1:8080
connectionclose
upgrade-insecure-requests1
user-agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36
accepttext/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
refererhttps://tuberedu.ca/
accept-encodinggzip, deflate, br
accept-languageen-US,en;q=0.9
cookieJSESSIONID=E092252D0045BED96E01B6E76381BD1C; JSESSIONID=E4A015B4A1BC9D4A7CB6752E07D2D777
Attribute List
javax.servlet.forward.request_uri/demo/demoHTML5.jsp
javax.servlet.forward.context_path/demo
javax.servlet.forward.servlet_path/demoHTML5.jsp
javax.servlet.forward.query_stringusername=Roger&isModerator=true&action=create
javax.servlet.error.status_code500
javax.servlet.jsp.jspExceptionjava.lang.NullPointerException
javax.servlet.error.request_uri/demo/demoHTML5.jsp
javax.servlet.error.servlet_namejsp
javax.servlet.error.exceptionjava.lang.NullPointerException

You received this message because you are subscribed to a topic in the Google Groups "BigBlueButton-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/bigbluebutton-dev/za__vFQg7I4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to bigbluebutton-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bigbluebutton-dev/CAOeuy5O6P_jSw6JcKOSncWvW1UnLWeYoMhr8jLi-hz603nqV%2Bw%40mail.gmail.com.

Fred Dixon

unread,
Aug 8, 2019, 9:05:33 AM8/8/19
to BigBlueButton-dev
Hi Roger,

We recently updated our development docs for HTML5, see


Can you try the steps at the above link and let us know if you are able to make changes to the client and run them locally.


Regards,... Fred

Chad Pilkey

unread,
Aug 8, 2019, 11:01:58 AM8/8/19
to BigBlueButton-dev
That 500 error is before the HTML5 client gets involved also. You will sometimes see 500's from the demos if you just recently restarted BBB or bbb-web. If the 500 errors persist then you'll want to check that bbb-web is running and that bbb_api_conf.jsp is pointing to the correct IP/FQDN.
To unsubscribe from this group and stop receiving emails from it, send an email to bigblueb...@googlegroups.com.


--
BigBlueButton Developer
@bigbluebutton

--
You received this message because you are subscribed to a topic in the Google Groups "BigBlueButton-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/bigbluebutton-dev/za__vFQg7I4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to bigblueb...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bigblueb...@googlegroups.com.

Roger Moore

unread,
Aug 9, 2019, 10:35:05 AM8/9/19
to bigblueb...@googlegroups.com
Thanks, Chad, it looks correct to me.  When I check /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp it has values like:

<%!
// This is the security salt that must match the value set in the BigBlueButton server
String salt = "alasdflkwer0930502;laksdf902354iksdf  ";
                     

// This is the URL for the BigBlueButton server
String BigBlueButtonURL = "https://tuberedu.ca/bigbluebutton/";
%>


When I try to run this from https://docs.bigbluebutton.org/2.2/dev.html  

cd ~/dev/bigbluebutton/bbb-common-web
./deploy.sh

I get these values:

rmoore@Annapurna:~$ cd ~/dev/bigbluebutton/bbb-common-web
rmoore@Annapurna:~/dev/bigbluebutton/bbb-common-web$ ./deploy.sh
[info] Loading settings for project bbb-common-web-build from plugins.sbt ...
[info] Loading project definition from /home/rmoore/dev/bigbluebutton/bbb-common-web/project
[info] Loading settings for project commonWeb from build.sbt ...
[info] Set current project to bbb-common-web (in build file:/home/rmoore/dev/bigbluebutton/bbb-common-web/)
[success] Total time: 0 s, completed Aug 9, 2019 8:27:53 AM
[info] Updating ...
[info] Scalariform auto formatting enabled
[info] Applying Scalariform preferences found in /home/rmoore/dev/bigbluebutton/bbb-common-web/./.scalariform.conf
[info] Packaging /home/rmoore/dev/bigbluebutton/bbb-common-web/target/bbb-common-web-0.0.3-SNAPSHOT-sources.jar ...
[info] Formatting 27 Scala sources ProjectRef(uri("file:/home/rmoore/dev/bigbluebutton/bbb-common-web/"), "commonWeb")(compile) ...
[info] Wrote /home/rmoore/dev/bigbluebutton/bbb-common-web/target/bbb-common-web-0.0.3-SNAPSHOT.pom
[info] Done packaging.
[warn]  module not found: org.bigbluebutton#bbb-common-message_2.12;0.0.20-SNAPSHOT
[warn] ==== local: tried
[warn]   /home/rmoore/.ivy2/local/org.bigbluebutton/bbb-common-message_2.12/0.0.20-SNAPSHOT/ivys/ivy.xml
[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/org/bigbluebutton/bbb-common-message_2.12/0.0.20-SNAPSHOT/bbb-common-message_2.12-0.0.20-SNAPSHOT.pom
[warn] ==== local-preloaded-ivy: tried
[warn]   /home/rmoore/.sbt/preloaded/org.bigbluebutton/bbb-common-message_2.12/0.0.20-SNAPSHOT/ivys/ivy.xml
[warn] ==== local-preloaded: tried
[warn]   file:////home/rmoore/.sbt/preloaded/org/bigbluebutton/bbb-common-message_2.12/0.0.20-SNAPSHOT/bbb-common-message_2.12-0.0.20-SNAPSHOT.pom
[warn] ==== Artima Maven Repository: tried
[warn]   http://repo.artima.com/releases/org/bigbluebutton/bbb-common-message_2.12/0.0.20-SNAPSHOT/bbb-common-message_2.12-0.0.20-SNAPSHOT.pom
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.bigbluebutton#bbb-common-message_2.12;0.0.20-SNAPSHOT: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn]  Note: Unresolved dependencies path:
[warn]          org.bigbluebutton:bbb-common-message_2.12:0.0.20-SNAPSHOT (/home/rmoore/dev/bigbluebutton/bbb-common-web/build.sbt#L33)
[warn]            +- org.bigbluebutton:bbb-common-web:0.0.3-SNAPSHOT
[error] sbt.librarymanagement.ResolveException: unresolved dependency: org.bigbluebutton#bbb-common-message_2.12;0.0.20-SNAPSHOT: not found
[error]         at sbt.internal.librarymanagement.ivyint.CachedResolutionResolveEngine.mergeErrors(CachedResolutionResolveEngine.scala:495)
[error]         at sbt.internal.librarymanagement.ivyint.CachedResolutionResolveEngine.mergeErrors$(CachedResolutionResolveEngine.scala:483)
[error]         at sbt.internal.librarymanagement.IvySbt$ParallelCachedResolutionResolveEngine.mergeErrors(Ivy.scala:138)
[error]         at sbt.internal.librarymanagement.ivyint.CachedResolutionResolveEngine.mergeResults(CachedResolutionResolveEngine.scala:480)
[error]         at sbt.internal.librarymanagement.ivyint.CachedResolutionResolveEngine.mergeResults$(CachedResolutionResolveEngine.scala:471)
[error]         at sbt.internal.librarymanagement.IvySbt$ParallelCachedResolutionResolveEngine.mergeResults(Ivy.scala:138)
[error]         at sbt.internal.librarymanagement.ivyint.CachedResolutionResolveEngine.$anonfun$customResolve$1(CachedResolutionResolveEngine.scala:461)
[error]         at scala.collection.concurrent.TrieMap.getOrElseUpdate(TrieMap.scala:903)
[error]         at sbt.internal.librarymanagement.ivyint.CachedResolutionResolveCache.getOrElseUpdateProjectReport(CachedResolutionResolveEngine.scala:310)
[error]         at sbt.internal.librarymanagement.ivyint.CachedResolutionResolveEngine.customResolve(CachedResolutionResolveEngine.scala:357)
[error]         at sbt.internal.librarymanagement.ivyint.CachedResolutionResolveEngine.customResolve$(CachedResolutionResolveEngine.scala:346)
[error]         at sbt.internal.librarymanagement.IvySbt$ParallelCachedResolutionResolveEngine.customResolve(Ivy.scala:138)
[error]         at sbt.internal.librarymanagement.IvyActions$.cachedResolveAndRetrieve(IvyActions.scala:377)
[error]         at sbt.internal.librarymanagement.IvyActions$.$anonfun$updateEither$1(IvyActions.scala:207)
[error]         at sbt.internal.librarymanagement.IvySbt$Module.$anonfun$withModule$1(Ivy.scala:239)
[error]         at sbt.internal.librarymanagement.IvySbt.$anonfun$withIvy$1(Ivy.scala:204)
[error]         at sbt.internal.librarymanagement.IvySbt.sbt$internal$librarymanagement$IvySbt$$action$1(Ivy.scala:70)
[error]         at sbt.internal.librarymanagement.IvySbt$$anon$3.call(Ivy.scala:77)
[error]         at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:95)
[error]         at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:80)
[error]         at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:99)
[error]         at xsbt.boot.Using$.withResource(Using.scala:10)
[error]         at xsbt.boot.Using$.apply(Using.scala:9)
[error]         at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:60)
[error]         at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:50)
[error]         at xsbt.boot.Locks$.apply0(Locks.scala:31)
[error]         at xsbt.boot.Locks$.apply(Locks.scala:28)
[error]         at sbt.internal.librarymanagement.IvySbt.withDefaultLogger(Ivy.scala:77)
[error]         at sbt.internal.librarymanagement.IvySbt.withIvy(Ivy.scala:199)
[error]         at sbt.internal.librarymanagement.IvySbt.withIvy(Ivy.scala:196)
[error]         at sbt.internal.librarymanagement.IvySbt$Module.withModule(Ivy.scala:238)
[error]         at sbt.internal.librarymanagement.IvyActions$.updateEither(IvyActions.scala:193)
[error]         at sbt.librarymanagement.ivy.IvyDependencyResolution.update(IvyDependencyResolution.scala:20)
[error]         at sbt.librarymanagement.DependencyResolution.update(DependencyResolution.scala:56)
[error]         at sbt.internal.LibraryManagement$.resolve$1(LibraryManagement.scala:45)
[error]         at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$12(LibraryManagement.scala:93)
[error]         at sbt.util.Tracked$.$anonfun$lastOutput$1(Tracked.scala:68)
[error]         at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$19(LibraryManagement.scala:106)
[error]         at scala.util.control.Exception$Catch.apply(Exception.scala:224)
[error]         at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11(LibraryManagement.scala:106)
[error]         at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11$adapted(LibraryManagement.scala:89)
[error]         at sbt.util.Tracked$.$anonfun$inputChanged$1(Tracked.scala:149)
[error]         at sbt.internal.LibraryManagement$.cachedUpdate(LibraryManagement.scala:120)
[error]         at sbt.Classpaths$.$anonfun$updateTask$5(Defaults.scala:2561)
[error]         at scala.Function1.$anonfun$compose$1(Function1.scala:44)
[error]         at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:40)
[error]         at sbt.std.Transform$$anon$4.work(System.scala:67)
[error]         at sbt.Execute.$anonfun$submit$2(Execute.scala:269)
[error]         at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error]         at sbt.Execute.work(Execute.scala:278)
[error]         at sbt.Execute.$anonfun$submit$1(Execute.scala:269)
[error]         at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error]         at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error]         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error]         at java.lang.Thread.run(Thread.java:748)
[error] (update) sbt.librarymanagement.ResolveException: unresolved dependency: org.bigbluebutton#bbb-common-message_2.12;0.0.20-SNAPSHOT: not found
[error] Total time: 2 s, completed Aug 9, 2019 8:27:56 AM
rmoore@Annapurna:~/dev/bigbluebutton/bbb-common-web$
rmoore@Annapurna:~/dev/bigbluebutton/bbb-common-web$



What do you suggest?  I had just done a git fetch upstream yesterday.



To unsubscribe from this group and all its topics, send an email to bigbluebutton-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bigbluebutton-dev/cc1dc0b4-8c44-40b1-89ea-5406225f3771%40googlegroups.com.

Chad Pilkey

unread,
Aug 9, 2019, 11:10:36 AM8/9/19
to BigBlueButton-dev
Why are you trying to build bbb-web (and it's dependencies)? If you haven't made any changes to those files then you should just be using the packaged bbb-web.
To unsubscribe from this group and all its topics, send an email to bigblueb...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bigbluebutton-dev/cc1dc0b4-8c44-40b1-89ea-5406225f3771%40googlegroups.com.

Chad Pilkey

unread,
Aug 9, 2019, 11:39:01 AM8/9/19
to BigBlueButton-dev
I just realized that you posted the salt. If that's unmasked I would suggest changing it on your server. The other thing that's weird about the salt is that it has spaces in it. If you didn't add them for the post then I would recommend removing any whitespace from your salt. I would suggest only having alphanumeric characters in your salt.

Roger Moore

unread,
Aug 9, 2019, 11:48:32 AM8/9/19
to bigblueb...@googlegroups.com
More curiosity than anything.  I thought that if I hadn't modified anything the bbb-common-web should at least still build and run from the dev version. 

To unsubscribe from this group and all its topics, send an email to bigbluebutton-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bigbluebutton-dev/d23c26e1-dbe3-4c32-b94d-5893ed981169%40googlegroups.com.

Roger Moore

unread,
Aug 9, 2019, 11:49:30 AM8/9/19
to bigblueb...@googlegroups.com
Thanks for the note, please note that I posted a "fake" salt

To unsubscribe from this group and all its topics, send an email to bigbluebutton-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bigbluebutton-dev/03b724b6-abb4-40ac-b285-019075f8e652%40googlegroups.com.

Chad Pilkey

unread,
Aug 9, 2019, 12:09:27 PM8/9/19
to BigBlueButton-dev
To build bbb-web you have to start one step higher to get bbb-common-message built. https://docs.bigbluebutton.org/2.2/dev.html#build-bbb-common-message
To unsubscribe from this group and all its topics, send an email to bigblueb...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bigbluebutton-dev/03b724b6-abb4-40ac-b285-019075f8e652%40googlegroups.com.

Roger Moore

unread,
Aug 9, 2019, 12:30:41 PM8/9/19
to bigblueb...@googlegroups.com
Okay, thanks, I rebooted my server and now BBB is working again.  You guys are awesome.

To unsubscribe from this group and all its topics, send an email to bigbluebutton-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bigbluebutton-dev/3d7c6b92-b416-4eda-8b25-cd9d6eb07228%40googlegroups.com.

Harsha Abegunasekara

unread,
Jan 3, 2020, 10:55:15 AM1/3/20
to BigBlueButton-dev
Hey did you manage to implement an eraser? 

Fred Dixon

unread,
Jan 3, 2020, 6:06:28 PM1/3/20
to BigBlueButton-dev
Hi Harsha,


> Hey did you manage to implement an eraser?

There isn't an eraser implemented in the BigBlueButton client yet, unless someone in the community has already implemented it and would like to share it with others.  See


and



Regards,... Fred

--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bigbluebutton-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bigbluebutton-dev/5374c9bc-e37d-492e-961c-4b8abeea8a74%40googlegroups.com.


--
BigBlueButton Developer

Like BigBlueButton?  Tweet us at @bigbluebutton
Reply all
Reply to author
Forward
0 new messages