Hi Zhalin, On Dec 14, 2009, at 5:21 PM, Zhaolin Feng wrote:
> Hi, Vincent: > > Please don't be mad at me. :) > I think it's a cool trick. But I don't think > rendering ascii graph into bitmap will add too much information. The mail wasn't about Ditaa. It was about introducing a temresource action. > And ordinary users will still find it hard to use. > > How about embedding a AJAX or flash based graphics editor? I know > there are > some good ones, but I don't know whether there are some open source > alternatives. > > Here are some live demos: > > http://www.lucidchart.com/documents/demo > http://www.drawanywhere.com/demo.aspx > > And the best one: http://www.gliffy.com/ which requires an account. Yes Gliffy is great. I'd love to have it. When can you start implementing the integration? :) Thanks -Vincent > On Mon, Dec 7, 2009 at 4:11 AM, Vincent Massol <[email protected]> > wrote: > >> Hi, >> >> Part I >> ===== >> >> I've started implementing a Ditaa Macro over the weekend ( >> http://ditaa.sourceforge.net/ >> ) but we need an Action to return the Ditaa-generated image file. >> For the chart macro we're using the charting action but I think we >> can >> make this generic and instead introduce a tmp (or temp or tmpresource >> or ...) action instead that would return any resource located in the >> xwiki temporary directory. >> >> For ex: >> /xwiki/bin/tmp/SomeResource >> >> would return SomeResource found in >> container.getApplicationContext().getTemporaryDirectory(). >> >> Part II >> ===== >> >> The only thing to be careful about is to not be able to read what's >> for another user and for which you don't have access to see it. For >> example an image generated by the chart macro for a page for which >> the >> user doesn't have view rights. This can be partially solved by >> ensuring that file names include a generated token. However the pb is >> that this token cannot be unique since, for ex, generated image need >> to be shared to anyone having the rights to view a page. >> >> <brainstomring mode> >> >> A solution I see would be to include the "rights" to check + the full >> page name in the URL, in addition to the resource. For example: >> >> /xwiki/bin/tmp/view/wiki:Space.Page/SomeResource >> >> A more generic solution would be to add a notion of Check Handler, >> i.e. code that would perform the check. For example in the previous >> solution it's not possible to check for 2 permissions, nor any >> complex >> scheme. This would mean something like: >> >> /xwiki/bin/tmp/<check handler name>/<resource name>?<check params> >> >> Ex: /xwiki/bin/tmp/simple/SomeResource? >> checkPermission="view"&checkDocument="wiki:Space.Page" >> >> Implementation: A component with a role hint of "simple" would be >> looked-up and the check logic delegated to it. >> >> However someone could use a some check for a resource that wasn't >> meant to be used for that resource. >> >> Thus the check and its params should probably instead be included in >> the resource name with some algorithm instead. Thus the solution >> maybe >> to have a high level API to create a resource name and that API would >> take a Check Handler hint + some arbitrary params and that API would >> generate a resource name with these added. For ex something like:: >> "SomeResource-simple-view-wiki:Space.Page" (or any other format). >> >> Another solution would be to follow a completely different direction >> and for example to introduce a new XDOM representation for a TMP- >> image, i.e. in addition to URLImage and DocumentImage, to add a >> TemporaryImage implementation. >> >> </brainstomring mode> >> >> WDYT about these 2 ideas and especially about Part I since I would >> need that sooner rather than later to implement the Ditaa macro, and >> Part II is already a problem today. >> >> Thanks >> -Vincent >> _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

