Hi Karel,
On 06/13/2011 04:17 PM, Karel Gardas wrote:
Hi Eduard,
thanks a lot for your advices given below. At this project state I'm
going with as simple as possible solution so I created special simple
web page for listing all the template providers as per your advice and
this runs well. On the other hand I do have some issue running running
SWT browser as part of new page wizard. The problem is authentication,
or better its lack of. Although I pass to the browser correct page
URL, the output of the browser is always:
HTTP Status 404 -
/xwiki-enterprise-web-3.1-SNAPSHOThttp://localhost:8080/xwiki-enterprise-web-3.1-SNAPSHOT/bin/login/XWiki/XWikiLogin
type Status report
message
/xwiki-enterprise-web-3.1-SNAPSHOThttp://localhost:8080/xwiki-enterprise-web-3.1-SNAPSHOT/bin/login/XWiki/XWikiLogin
description The requested resource
(/xwiki-enterprise-web-3.1-SNAPSHOThttp://localhost:8080/xwiki-enterprise-web-3.1-SNAPSHOT/bin/login/XWiki/XWikiLogin)
is not available.
Apache Tomcat/7.0.12
Well, from what I can see, you are trying to access a
malformed URL.
"/xwiki-enterprise-web-3.1-SNAPSHOThttp://localhost:8080/xwiki-enterprise-web-3.1-SNAPSHOT/bin/login/XWiki/XWikiLogin"
seems to have 2 problems:
1) the first part "/xwiki-enterprise-web-3.1-SNAPSHOT" does not belong here.
2) the webapp part of the URL:
"http://localhost:8080/xwiki-enterprise-web-3.1-SNAPSHOT/bin/login/XWiki/XWikiLogin",
more exactly "xwiki-enterprise-web-3.1-SNAPSHOT", if you did not modify
the default db in xwiki.cfg, should be just "xwiki".
So, the correct URL should be:
"http://localhost:8080/xwiki/bin/login/XWiki/XWikiLogin"
Now, regarding authentication... A solution is to send, with each HTTP
request that you do, a HTTP Auth header providing user/password. You can
also choose to send it only once per session and reuse the session
cookie that XWiki will return after the first request that contains the
HTTP auth header.
If you use the SWT Browser to directly access an XWiki page, you can
pass the HTTP Auth header by using the setUrl(...) method trough
something like this:
browser.setUrl("http://localhost:8080/xwiki/bin/view/XWiki/APrivatePage",
null,
new String[] {"Authorization: Basic QWRtaW46YWRtaW4="});
the QWRtaW46YWRtaW4= is the Base64 encoding of Admin:admin. You can
generate you own Base64 encoding of a user:password combination and pass
that instead. If you choose to use a simple HTTP client to retrieve the
HTML of a page and the render it with a browser, you`ll have to pass the
user:password to that client instead.
Anyway, I tested the URL in external browser and it's working fine
there -- please note I'm logged in in this browser.
I've attempted to hack the code to convince browser to authenticate by
using authentication listener:
browser = new Browser(browserComposite, SWT.NONE);
browser.addAuthenticationListener(new AuthenticationListener() {
public void authenticate(AuthenticationEvent event) {
// TODO Auto-generated method stub
System.err.println("AuthenticationListener::authenticate: " +
event.toString());
event.user = "Admin";
event.password = "admin";
event.doit = true;
}
});
but this is not even invoked. Do you have any idea how to solve this?
The
authentication listener would not trigger because XWiki does not
return 401 Unauthorized when tryin to access a restricted page, but
instead provides it's own authentication ui/page. However, passing an
Authorization header to a restricted page will automatically perform the
login and you can then reuse the session token instead of passing the
user/password for each request.
I see that preview browser is always running in
non-authenticated mode
(or what I've researched so far) although connection in Explorer is
authenticated...
Yes, it might be a nice to have feature (authenticated preview window).
Could you please add a jira issue for it?
http://jira.xwiki.org/jira/browse/XECLIPSE
Thanks,
Eduard
If you are curious I'm free to submit all changes
in a form of
preferred diff to the original RFE, especially if it helps you advice
me how to proceed from here...
Thanks!
Karel
On 06/ 2/11 10:14 PM, Eduard Moraru wrote:
Hi Karel,
On 06/02/2011 07:54 PM, Karel Gardas wrote:
Hello,
I'm back to this task. I've searched JIRA for related RFE/BUG but have
not found anything so I created my own:
http://jira.xwiki.org/jira/browse/XECLIPSE-152
My basic idea about UI is that XEclipse New Page wizard will be
enhanced
to provide a field "Template" where user will be able to select
appropriate template provider (as they are set in Administration>
Content> Templates).
In order to get the list of templates in XEclipse, you
would need a
service that does internally a HQL like this:
#set($availableProviders = $xwiki.searchDocuments(", BaseObject obj
where doc.fullName=obj.name and
obj.className='XWiki.TemplateProviderClass' and
doc.fullName!='XWiki.TemplateProviderTemplate'"))
(taken from XWiki.AdminTemplatesSheet, the page that displays the
content in Administration> Content> Templates)
The service can be either a REST extension (java component) or a wiki
page called with ?xpage=plain (to return the result in some custom xml
or just csv).
If he/she sets some, then while clicking on
Next
button (to be added) it'll render the page of the template provider
form
to the wizard window, the user will be able to fill it and then hit
Finish button to actually save the page.
Both to avoid reimplementing the template
mechanism and the rendering of
the template form, one rather simple solution would be to display in an
SWT Browser control the result of a page like
http://localhost:8080/xwiki/bin/inline/Main/MyNewPage?parent=Main.AParentPa…
(the type of link generated by the create page dialog in XWiki).
Basically you show the XWiki page inside your wizard.
The problem with this approach is that you end up with unnecessary
header, panels and footer when you`re only interested in the page
content. Besides that, you also have the save, save&continue and cancel
buttons that are kind of conflicting with your wizard's buttons and
flow.
Not sure about this, but one solution may be to extract from the big
HTML, only the document content, excluding the bottom buttons. You`d
better inspect (with firebug) the structure of the page to see what you
need and what you don`t.
A second partial solution would be to append ?xpage=plain to the above
link and you will end up only with the rendered document content in
inline mode (so you can have inputs and such). The only disadvantage I
see here is that, if your template uses non-inline javascript (trough a
JavaScriptExtension for example or the js already available in XWiki),
it will not be available in the rendered version.
Whichever you choose from the two solutions, you can then implement the
Finish button of the wizard to launch a HTTP request and simulate the
Save button from XWiki's page (passing all the needed parameters,
including the parameters in the page the user just filled in).
You can additionally stylize the displayed HTML so that it better
integrates with the Eclipse wizard.
Now the question is how to achieve it? Any idea
where to start hacking
or where to look for more information is highly appreciated here.
This is the only
thing I can think of right now. Hope it helps.
Thanks,
Eduard
Thanks,
Karel
On 04/26/11 05:38 PM, Karel Gardas wrote:
Hello,
I'm currently reading about XWiki and XEclipse and would like to
ask if
there is any consensus about XWiki pages templates which might also be
usable from XEclipse probably after some code hacking on its plugins.
I'm currently working on some project for my client (source code
will be
contributed/available later in the project stage) where there is a
need
to use XEclipse and enhance it to support some predefined
forms/templates for web pages creation. So far I've found just
XWiki FAQ
tutorial on
http://platform.xwiki.org/xwiki/bin/view/DevGuide/FAQTutorial which
tries to deals with some kind of templates. However this looks quite
general at least so far to me and so I would like to ask the question
above about consensus where and how to go with templates in
xwiki/xeclipse.
My current idea is to stick with the XWiki server as a provider of
templates to preserve ability to use templates from both browser and
xeclipse and to enhance xeclipse new page creation wizard to provide a
list of available templates on the server side...
Thanks for any idea where to start or where to look for more
information
with regarding to this project task.
Karel
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs