Hi,
When a document has translations, it appears in the document list as
many times as many translations exists.
This bug was added about 2 years ago and we believe it is really an
annoying one.
http://jira.xwiki.org/browse/XWIKI-6228
I'd like to ask if there is any plan for fixing it, and hopefully we can
discuss different solutions for this. Here are the original suggestion
and ours:
1. Document list should show the translated title, every document
appears as many times as many translations exists.
2. (we think this is better ;) ) Every document should appear in the
list only once according to the current language, with the following rules:
2.a. if there is no translation in the current languages, the document
should not appear
2.b. if translations exists, but the title is not translated, then the
title of the original document should appear.
Thanks,
Daniel
Hi,
i installed the "Social Login Extension" and followed the steps to implement
it to my wiki.
First i wanted to try the facebook login. Therefore, i created a facebook
app and put the app keys in the oauth_consumer.properties file.
My wiki runs on my localhost. So i put "http://localhost:8080" in the
configuration of my facebook app.
When i click on the social login button at the xwiki login it redirects me
to facebook, where i have to confirm that i want to do this. But when i am
redirected to xwiki i get the following error message:
org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Script
Macro for content [import org.brickred.socialauth.AuthProvider
import org.brickred.socialauth.AuthProviderFactory
/**
* Displays a form with a single field for a new SSO user to pickup its
usernamem
*/
def outputUsernameCreationForm = { defaultValue, provider ->
if (!defaultValue)
defaultValue = ""
xwiki.ssx.use('XWiki.SocialLogin')
println """
{{html clean=false}}
<form class="xform" action=${doc.getURL('view')} method="post"
id="createUsernameForm">
<div class="centered">
<fieldset class="xwikimessage">
<legend>${msg.get('xwiki.socialLogin.youMustBeNewHere')}</legend>
<input type="hidden" name="xaction" value="createProfile" />
<p class="message">
${msg.get('xwiki.socialLogin.createProfileMessage', [provider])}
</p>
<dl>
<dt>${msg.get('xwiki.socialLogin.pickupUsername')}</dt>
<dd><input type="text" name="username" value="${defaultValue}"
/></dd>
</dl>
<div class="buttons">
<input class="button" type="submit"
value="${msg.get('xwiki.socialLogin.createMyAccount')}" />
</div>
</fieldset>
</div>
</form>
{{/html}}
"""
}
/**
* Authenticate a user and make it remembered in XWiki authentication system
*/
def authenticateUser = { userDoc ->
def password =
userDoc.getObject('XWiki.SocialLoginClass').getProperty('password_cache').value
def xwikiAuthenticator =
xwiki.@xwiki.getAuthService().@authenticators.get('xwiki')
def psm = xwikiAuthenticator.@persistentLoginManager
psm.rememberLogin(request, response, userDoc.fullName, password)
response.sendRedirect(xwiki.getURL('Main.WebHome', 'view'))
}
// Load oauth properties file
def properties = new java.util.Properties()
properties.load(com.xpn.xwiki.web.Utils.getComponent("org.xwiki.container.Container").applicationContext.getResourceAsStream("/WEB-INF/oauth_consumer.properties"))
/**
* Initiate the OAuth dance with the requested provider
*/
if(!request.callback && request.provider) {
try {
def provider = AuthProviderFactory.getInstance(request.provider,
properties)
println provider
String url =
provider.getLoginRedirectURL(doc.getExternalURL('view','callback=1'));
// Store in session
request.session.setAttribute("org.brickred.socialauth.AuthProvider",
provider);
request.session.setAttribute("org.brickred.socialauth.AuthProvider.hint",
request.provider);
response.sendRedirect(url)
}
catch(Exception e) {
println """
{{error}}
${msg.get('xwiki.socialLogin.genericError', [e.message])}
{{/error}}
"""
}
}
/**
* We've got a response from the provider, let's treat it
*/
else if (request.callback){
try {
// get the provider back from session
def provider =
request.session.getAttribute("org.brickred.socialauth.AuthProvider");
def providerID =
request.session.getAttribute("org.brickred.socialauth.AuthProvider.hint");
// verify the authentication
def profile = provider.verifyResponse(request);
// Search for this user in database
def query = services.query.xwql("from doc.object(XWiki.XWikiUsers) as
user, doc.object(XWiki.SocialLoginProfileClass) as profile where
profile.provider = '" + providerID + "' and profile.validatedId = '" +
profile.validatedId + "'")
for (result in query.execute()) {
authenticateUser(xwiki.getDocument(result))
}
// Not authenticated/redirected yet ? -> You must be new here
// You will have to pick-up a username and dad will create an account
for you
// Store the social profile in the session
request.session.setAttribute("org.brickred.socialauth.Profile",
profile);
// Try to guess what username the user will want to use
def guessedUsername = profile.displayName
// Outputs the form to create the username
outputUsernameCreationForm(guessedUsername, providerID)
} catch(Exception e) {
println """
{{error}}
${msg.get('xwiki.socialLogin.genericError', [e.message])}
{{/error}}
"""
}
}
/**
* Create a new user profile from the social profile result
*/
else if (request.xaction && request.xaction == 'createProfile') {
def profile =
request.session.getAttribute("org.brickred.socialauth.Profile")
def provider =
request.session.getAttribute("org.brickred.socialauth.AuthProvider.hint");
def username = request.username
if (username && username != '' && !xwiki.exists("XWiki." + username)) {
// Everything clear, let's proceed
def userDocName = "XWiki." + username
// Generate a random password
password = xwiki.generateRandomString(16)
def propMap = [:]
propMap.put("active", "1")
propMap.put("email", profile.email)
propMap.put("first_name", profile.firstName)
propMap.put("last_name", profile.lastName)
propMap.put("password", password)
xwiki.(a)xwiki.createUser(username, propMap, xcontext.@context)
def userDoc = xwiki.getDocument(userDocName)
def socialProfile = userDoc.getObject('XWiki.SocialLoginProfileClass',
true)
socialProfile.set('provider', provider)
socialProfile.set('fullName', profile.fullName)
socialProfile.set('firstName', profile.firstName)
socialProfile.set('lastName', profile.lastName)
socialProfile.set('displayName', profile.displayName)
socialProfile.set('email', profile.email)
socialProfile.set('profileImageURL', profile.profileImageURL)
socialProfile.set('gender', profile.gender)
socialProfile.set('dob', profile.dob)
socialProfile.set('validatedId', profile.validatedId)
socialProfile.set('country', profile.country)
socialProfile.set('location', profile.location)
def socialPrefs = userDoc.getObject('XWiki.SocialLoginClass', true)
socialPrefs.set('password_cache', password)
socialPrefs.set('preferred_provider', provider)
userDoc.saveWithProgrammingRights(msg.get('xwiki.socialLogin.updatedSocialProfile'),
true)
authenticateUser(userDoc)
}
else {
if (!username || username == '')
println """
{{error}}
${msg.get('xwiki.socialLogin.youMustPickUsername')}
{{/error}}
"""
else if (xwiki.exists('XWiki.' + username))
println """
{{error}}
${msg.get('xwiki.socialLogin.usernameAlreadyTaken')}
{{/error}}
"""
outputUsernameCreationForm("", provider);
}
}
/**
* View mode
*/
else {
println """
{{info}}
${msg.get('xwiki.socialLogin.nothingToDo')}
{{/info}}
"""
}]
at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:178)
at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:53)
at
org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:198)
at
org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:59)
at
org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transformOnce(MacroTransformation.java:190)
at
org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:135)
at
org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:83)
at
org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:248)
at
org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:124)
at
org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:54)
at
org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:80)
at
org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:38)
at
org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:111)
at
org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:50)
at
org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:67)
at
org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:41)
at
com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:901)
at
com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:880)
at
com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:911)
at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:582)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
at
org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
at
org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
at
org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:567)
at
org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71)
at
org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:142)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:224)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:184)
at
com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:105)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1799)
at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1739)
at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:854)
at sun.reflect.GeneratedMethodAccessor133.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
at
org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
at
org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
at
org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at
org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:216)
at
org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:311)
at
org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230)
at
org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:224)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:184)
at
com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:105)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1799)
at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:155)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:241)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:116)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:120)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:144)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:66)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.script.ScriptException: javax.script.ScriptException:
groovy.lang.MissingPropertyException: No such property: msg for class:
Script2
at
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:122)
at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.eval(AbstractJSR223ScriptMacro.java:280)
at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:213)
at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:173)
... 103 more
Caused by: javax.script.ScriptException:
groovy.lang.MissingPropertyException: No such property: msg for class:
Script2
at
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:323)
at
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:116)
... 106 more
Caused by: groovy.lang.MissingPropertyException: No such property: msg for
class: Script2
at
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
at
org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
at Script2.run(Script2.groovy:117)
at
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:320)
... 107 more
Do u have any idea, what i can do? I tried so much, but nothing worked.
Thank you a lot
Caroline
--
View this message in context: http://xwiki.475771.n2.nabble.com/Social-Login-Extension-Problem-tp7580669.…
Sent from the XWiki- Dev mailing list archive at Nabble.com.
Hi,
I am developing a script on groovy which compiles a table of content
"manually" and then includes the children documents before exporting to
PDF.
So finally compiled document content looks like
"
=={{{ }}}[[1. Software Requirements
Specification>>#H1.SoftwareRequirementsSpecification-1]]==
==={{{ }}}[[1.1. Use cases>>#H1.1.Usecases-1]]===
===={{{ }}}[[1.1.1. Bite registration and occlusal clearance
UC
......
......
== 1. Software Requirements Specification==
{{include document="Polaris.SoftwareRequirementsSpecification"
context="new"/}}
=== 1.1. Use cases===
{{include document="Polaris.Use cases" context="new"/}}
......
"
But when I export the document to PDf my compiled TOC(which is rather
large) is not carried on the next page, it is just cut in the middle.
The Export to RTF passes ok with carrying the TOC on the next page.
Could somebody help to understand where is the problem?
Thanks,
elena
I've improved a bit ExtensionCode.ExtensionVersionSheet to create the
additional version in one click and allow then to edit it from the
normal UI.
I'm not sure where to propose a patch for the Extension Repository UI ?
Ludovic
--
Ludovic Dubost
Founder and CEO
Blog: http://blog.ludovic.org/
XWiki: http://www.xwiki.com
Skype: ldubost GTalk: ldubost
Hi,
I need to compile all pages (from parent to children) to one pdf
document.
Pages may contain a piece of data not to be included to the final
document. This piece of data can be bound with [Exclude] ... [/Exclude]
tags, or smth like this. Currently I see the only way to do it with
parsing the each page 'String' content before including it to the output
document and get rid of these pieces. But currently I experience some
issues with this approach and it seems not clean.
Is there another way around? Or maybe some doc links.
<sorry if the question is too dumb, I have just started with the xwiki>
thanks
I noticed that the rhq-pluginAnnotations-3.0.4.jar JAR is used in xwiki-enterprise-jetty-hsqldb-4.1.2. The source code for rhq-pluginAnnotations-3.0.4 [1] uses the GNU General Public License. However, the overall licence for xwiki-enterprise-jetty-hsqldb-4.1.2 is GNU LESSER GENERAL PUBLIC LICENSE (see xwiki-enterprise-jetty-hsqldb-4.1.2\META-INF\LICENSE file that comes with the distro).
If the overall distro uses a GPL library, don't the copy left provisions of the GPL require shouldn't that require the whole distro fall under the GPL license?
Refs.
[1] http://grepcode.com/file/repository.jboss.org/nexus/content/repositories/re…
Hi,
Here I "fixed" the failing attachment test to prove what it sets out to prove.
https://github.com/xwiki/xwiki-enterprise/commit/a59168b23dfb254d67a24caf98…
I also added 2 new tests, one of which checks if a modified document is the same after saving
and the other checks if the '$doc' reference points to the same document.
It turns out that one of the tests fails, meaning any code which modified it's own page, saves it,
and expects it's handle on '$doc' to still contain the modified document will break.
It is relatively common for some scripts to modify their own document, esp. adding objects and if
they do multiple save operations, the content from only the last save will be preserved since it
will overwrite the older saves.
IMO we really need M1 but we should report a blocker on this as soon as it is released.
Caleb
Hi Thomas,
*Road Map: Status*
*
*
1)Complete SyncDaemon [done. some fine tuning needed]
2)Encryption features [currently working on]
3)Do full documentation of the current platform.[done]
4)JUnit tests [next week]
5)
I have uploaded the documentation set in a zip file at
http://dl.dropbox.com/u/30342197/Full%20Documentation.zip .Feel free to
ask for clarifications and point out mistakes,improvements if needed.[start
with INDEX-XWiki Android]. Where shall I publish them ? In
the extension space (where Chamika's Documentation is) or the design space?.
Regards,
Sasinda Rukshan
On Wed, Aug 1, 2012 at 12:41 PM, sasinda rukshan
<sasindarukshan(a)gmail.com>wrote:
> Hi Thomas,
> *Road Map: Status*
> *
> *
> 1)Complete SyncDaemon [done. some fine tuning needed]
> 2)Encryption features [currently working on]
> 3)Do full documentation of the current platform.[done]
> 4)JUnit tests [next week]
> 5)
>
> I have attached the documentation in a zip file.Feel free to ask for
> clarifications if needed.[start with INDEX-XWiki Android]. Where shall I
> publish them ? In the extension space (where Chamika's Documentation is) or
> the design space?.
>
> Regards,
> Sasinda Rukshan.
>
>
> On Tue, Jul 24, 2012 at 9:20 AM, sasinda rukshan <sasindarukshan(a)gmail.com
> > wrote:
>
>> Dear Thomas,
>>
>> *RoadMap.*
>> 1)Complete SyncDaemon
>> 2)Complete Encryption features. ( The module will not be fully specified.
>> Only little functionality for this project)
>> 3)Do full documentation of the current platform. (quick starts,
>> contribution guides ...) <<need opinion. Is documentation considered part
>> of GSoC?
>> 4)Junit Tests (for the new high level rest layer, xwiki Domain model
>> persistence)
>> 5)Some more UI demos. (what about making a View-Generator-Engine as a
>> reusable component to generate android view widgets for Document and its
>> parts?. Only objection with me is time concerns)
>>
>> Extra:
>>
>> I did not do that announcement yet :-). Hope you are not angry with me. I
>> planned to do it after I add UI to demonstrate "Sync Daemon". Currently you
>> can only manually save and do the publishing later.
>>
>> I hope to complete SyncDaemon demo, Encryption by the end of this week.
>> (Then only left will be Junit tests and some more UI demos to show adding
>> comments , attachments to the android's XWiki Domain model).
>> I will be completing the RAL layer without the querry methods.
>> Querry methods are a lot of big work. I'll just note the idea here.
>> ex: querry all documents with a blogpost object or a blog category object.
>> How to do:
>> Make 2 instances of Document Object (doc1, doc2)
>> doc1.addObject( XBlogPost)
>> doc2.addObject(XBlogCategory)
>>
>> in the RAL : DocumentRao.querry( doc1, doc2) <<here querry
>> method signature is querry(Document ... docs)
>>
>> :-) This is very highlevel. And I am not smart enough to fully implement
>> it. (slight idea of using QuerryBuilders and Filter Chains :-( )
>> So I want implement it.
>>
>>
>> Also the test build is not working.
>> The test modules are running up to mvn phase apk. Shall I see to it
>> later, when I add my own Junit tests.
>>
>>
>>
>> Regards.
>> Sasinda.
>>
>
>
Bonjour,
Un petit message pour vous demander s'il existe chez Xwiki des travaux sur
la visualisation des données ?
Merci d'avance et bonne journée
Mathieu
--
un nouveau colporteur (explorateur à ses heures) sur la route de la
révolution du sourire