I think if there're some sort of sandbox technique we can use for html, it'll be really helpful on view side. As far as i know, the only safe sandbox in html is using iframe and it's not seamless and difficult to use. So for now, i think causing problem on view side (like overriding css) is up to user.
On Sun, Mar 22, 2015 at 11:31 PM Corneau Damien <cornead...@apache.org> wrote: > I didn't see the original email... :'( > > There should not be any problem with user affecting the current notebook > UI, at least on the scope level. > Since we could create a particular scope variable in the app to take care > of this kind of values. > > For things like event ($broadcast) and controllers, it could be a bit more > complicated, and we might need to run it as a separate angular app. > That's something we will have to investigate more. > > It would be nice to take it slow, and maybe start with only scope variable > first. > > In some way we could have a similar result with %HTML, but it could bring > some nice features: > - Create angular template that could be use to extend Zeppelin UI > - Allowing people to import javascript library (including graph library) > - Being able to have angular binding between the result of a query in a > paragraph and an angular template in a different paragraph > > One limitation if we decide to go for full angular code, would be that > cross-notebook relations would not work. > > > > On Sun, Mar 22, 2015 at 11:06 PM, RJ Nowling <rnowl...@gmail.com> wrote: > > > This sounds very useful. Would there be issues where users could easily > > cause problems with the notebook's own UI? > > > > > > > On Mar 22, 2015, at 7:57 AM, moon soo Lee <m...@apache.org> wrote: > > > > > > Hi, > > > > > > Zeppelin currently has feature that creates form dynamically. ( > > > http://zeppelin.incubator.apache.org/docs/dynamicform.html) > > > It's only supporting simple input text and dropdown list. > > > > > > Recently Damien and Me discussed about ability to create rich GUI, and > > i'm > > > bringing the discussion to the online. > > > > > > Basic idea is adding '%angular' to display system > > > <http://zeppelin.incubator.apache.org/docs/display.html>. > > > Like currently supported '%html' that prints output as html code, > > > '%angular' displays output as angular view. For example, > > > > > > println("""%angular Your name is {{ z.name }}. <a > > > ng-click="z.onClickOkay()">ok</a>""") > > > > > > will compiled and rendered as angular view code. For variable (z.name) > > and > > > function (z.onClickOkay()), we can develop some kind of Js(angular > > > controller) - JVM gateway so user will able to bind Object or Function > > into > > > the angular scope, like > > > > > > val name = "Zeppelin" > > > z.angularBind("name", name) > > > > > > def onClickOkay() = { > > > ...} > > > z.angularBind("onClickOkay", onClickOkay) > > > > > > > > > In this way, user can implement their own customized visualizations and > > > user interface without (almost) any limitation. > > > > > > What do you think? > > > I'd appreciate any feedback! > > > > > > Best, > > > moon > > >