Hi Marius,
Thank you for your help! I am quite touched you actually tried to load the
Mail example in Xwiki page. I followed your code in the 1.6 version. Here is
the screenshot link:
http://picasaweb.google.com/lh/sredir?uname=freeleons&target=PHOTO&id=53904…
It seems works on Firefox (It is clickable but still something broken
maybe it is the sizing not right) it does not work on Google Chrome at all.
At the top of the page Firefox can display it well Chrome will display
nothing. At the bottom of the page both on Chrome and Firefox will display
these:
//
xwe.onInjectionDone('xwe')
//
//
xwe.onInjectionDone('xwe')
//
//
xwe.onInjectionDone('xwe')
//
//
xwe.onInjectionDone('xwe')
//
Here is the screenshot:
http://picasaweb.google.com/lh/sredir?uname=freeleons&target=PHOTO&id=53904…
It completely broken and nothing clickable. Later I found the srollbar
disable because this line in the Mail source
code: Window.enableScrolling(false);
Thank you for your help so I can get this far. Do you know why the the Mail
appear both at the very top of the page and also at the very bottom of the
page, and the bottom is completely broken? The mail.nocache.js successfully
loaded according to firebug.
And here is my code:
public void onModuleLoad() {
loadingUI();
}
private void loadingUI(){
String hookId = "DR_TreeView";
Element hook = DOM.getElementById(hookId);
if (hook == null) {
return;
}
// Prepare the DOM
Element container = DOM.createDiv();
String containerId = hookId + "_container";
container.setId(containerId);
hook.getParentElement().replaceChild(container, hook);
DockPanel outer = initialUI();
RootPanel.get(containerId).add(outer);
// Call the window resized handler to get the initial sizes setup.
Doing
// this in a deferred command causes it to occur after all widgets'
sizes
// have been computed by the browser.
DeferredCommand.addCommand(new Command() {
public void execute() {
onWindowResized(Window.getClientWidth(),
Window.getClientHeight());
}
});
onWindowResized(Window.getClientWidth(), Window.getClientHeight());
}
Thank you a lot!
-Leon
Hi, there,
I'm running the sanity check script on mysql 5.0.54 and there are some
queries return results. To correct these problems, should I simply just
delete these results or I need to do something else before the deletion?
Take an example, for the following query:
select * from xwikiproperties,xwikilargestrings where
xwp_classtype='com.xpn.xwiki.objects.StringListProperty' and
xwp_name=xwl_name and xwp_id=xwl_id
+---------+-----------------+--------------------------------------+---------+-----------------+---------------------------------------------
| XWP_ID | XWP_NAME | XWP_CLASSTYPE | XWL_ID | XWL_NAME | XWL_VALUE
+---------+-----------------+--------------------------------------+---------+-----------------+---------------------------------------------
| -1877168607 | subscribedDocuments |
com.xpn.xwiki.objects.StringListProperty | -1877168607 | subscribedDocuments
| Main.WebSearch|Main.Categories
| 261169163 | subscribedDocuments | com.xpn.xwiki.objects.StringListProperty
| 261169163 | subscribedDocuments | Service
Measurements.WebHome|IMProcess.WebHome
| 683557787 | subscribedWebs | com.xpn.xwiki.objects.StringListProperty |
683557787 | subscribedWebs | Replication
| 683557787 | subscribedDocuments | com.xpn.xwiki.objects.StringListProperty
| 683557787 | subscribedDocuments | IIS.WebHome
I've got couple hundred lines of records like this. If I delete all these
records, what kind of impact will be to my content?
Thank you very much for your help
--
View this message in context: http://n2.nabble.com/Help-About-Sanity-Check-tp3670302p3670302.html
Sent from the XWiki- Dev mailing list archive at Nabble.com.
jvdrean (SVN) wrote:
> Author: jvdrean
> Date: 2009-08-25 15:03:08 +0200 (Tue, 25 Aug 2009)
> New Revision: 22900
>
> Added:
> platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListEvent.java
> platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListEventManager.java
> platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListEventType.java
> platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListJob.java
> platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListJobManager.java
> platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListNotifier.java
> platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListStore.java
> Removed:
> platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListJob.java
> Modified:
> platform/core/trunk/xwiki-core/src/main/resources/ApplicationResources.properties
> platform/xwiki-applications/trunk/watchlist/src/main/resources/XWiki/WatchListManager.xml
> platform/xwiki-applications/trunk/watchlist/src/main/resources/XWiki/WatchListMessage.xml
> platform/xwiki-plugins/trunk/watchlist/pom.xml
> platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListPlugin.java
> platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListPluginApi.java
> Log:
> XPWATCHLIST-55 : Make the watchlist plugin use the activitystream plugin to retrieve events
> XPWATCHLIST-23 : Put the classes and objects diffs in the emails.
> XPWATCHLIST-34 : Exception in log for user not having watch list data
> XPWATCHLIST-35 : Watch list should support registering for full wikis
> XPWATCHLIST-40 : Watch list should support any interval for its notifications
> XPWATCHLIST-27 : WatchList send an exception by mail
>
> Modified: platform/core/trunk/xwiki-core/src/main/resources/ApplicationResources.properties
> ===================================================================
> --- platform/core/trunk/xwiki-core/src/main/resources/ApplicationResources.properties 2009-08-25 12:55:58 UTC (rev 22899)
> +++ platform/core/trunk/xwiki-core/src/main/resources/ApplicationResources.properties 2009-08-25 13:03:08 UTC (rev 22900)
> @@ -837,6 +837,10 @@
> watchlist.delete.ko=An error occurred while removing {0} from watchlist
> watchlist.create.object=Created WatchList storage object
> watchlist.save.object=Updated WatchList
> +watchlist.event.create=On {0}, the document has been created by {1}
> +watchlist.event.delete=On {0}, the document has been deleted by {1}
> +watchlist.event.update=On {0}, the document has been modified by {1}
> +watchlist.event.update.multiple=Between {0} and {1}, the document has been modified {2} times, by {3} user(s): {4}
/\ /\ /\
Replaced user(s) with: user{3,choice,0#s|1#|2#s}.
> Added: platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListEvent.java
> ===================================================================
> --- platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListEvent.java (rev 0)
> +++ platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListEvent.java 2009-08-25 13:03:08 UTC (rev 22900)
> @@ -0,0 +1,504 @@
Why do we need both prefixedSpace and prefixedFullName? Can't we obtain
the first from the latter?
> + /**
> + * Prefixed space in which the event happened.
> + */
> + private final String prefixedSpace;
> +
> + /**
> + * Prefixed document fullName in which the event happened.
> + */
> + private final String prefixedFullName;
I prefer enums for this. Is there a good reason why this is a String?
> + /**
> + * Type of the event (example: "update").
> + */
> + private String type;
> +
I don't like three lists that must be iterated in parallel. Why not a
single lists with a custom data object?
> +
> + /**
> + * List of versions affected by this event. It will contain only one entry if the event is not a composite event.
> + */
> + private List<String> versions;
> +
> + /**
> + * List of authors for this event. It will contain only one entry if the event is not a composite event.
> + */
> + private List<String> authors;
> +
> + /**
> + * List of dates for this event. It will contain only one entry if the event is not a composite event.
> + */
> + private List<Date> dates;
> +
> + /**
> + * Constructor.
> + *
> + * @param activityEvent activity stream event to wrap
> + */
> + public WatchListEvent(ActivityEvent activityEvent)
> + {
> + this.activityEvents.add(activityEvent);
> + type = activityEvent.getType();
> + prefixedSpace = activityEvent.getWiki() + WatchListStore.WIKI_SPACE_SEP + activityEvent.getSpace();
> + prefixedFullName = activityEvent.getWiki() + WatchListStore.WIKI_SPACE_SEP + activityEvent.getPage();
I'd move this piece of code in a separate method.
> + int hash = 3;
> + if (ActivityEventType.UPDATE.equals(activityEvent)) {
> + hashCode = 42 * hash + prefixedFullName.hashCode() + activityEvent.getType().hashCode();
> + } else {
> + hashCode =
> + 42 * hash + prefixedFullName.hashCode() + activityEvent.getType().hashCode()
> + + activityEvent.getDate().hashCode();
> + }
> + }
> +
> + /**
> + * Add another event associated to this event.
> + *
> + * @param event The event to add.
> + */
> + public void addEvent(WatchListEvent event)
> + {
> + if (ActivityEventType.DELETE.equals(event.getType())) {
> + // If the document has been deleted, reset this event
> + activityEvents.clear();
> + type = event.getType();
> + versions.clear();
> + versions = null;
> + authors.clear();
> + authors = null;
> + previousVersion = null;
> + htmlDiff = null;
> + } else if (ActivityEventType.UPDATE.equals(event.getType()) && ActivityEventType.DELETE.equals(getType())) {
> + // If an update event had been fired before a delete, discard it
> + return;
> + }
> +
> + activityEvents.add(event.getActivityEvent());
> + }
The following methods are not threadsafe at all. Should they be?
Why don't we build these lists as we add events? The current usage
patterns probably don't add new events after retrieving the list of
dates/authors, but this code has a dependency on the order in which
methods are called, which is not good.
> + /**
> + * @return Get all the dates of a composite event, if this event is not a composite this list will contain single
> + * entry.
> + */
> + public List<Date> getDates()
> + {
> + if (dates == null) {
> + dates = new ArrayList<Date>();
I don't think this is needed, since isComposite simply checks the size
of the list. It brings a marginal performance gain with the cost of
increased code complexity.
> + if (!isComposite()) {
> + dates.add(getDate());
> + } else {
> + for (ActivityEvent event : activityEvents) {
> + dates.add(event.getDate());
> + }
> + }
> + }
> +
> + return dates;
> + }
> +
> + public List<String> getAuthors()
> +
> + public List<String> getVersions()
> +
> +
> + /**
> + * @param classAttr The class of the div to create
> + * @return a HTML div element
> + */
> + private Div createDiffDiv(String classAttr)
> + {
Oh no, please don't use jakarta-ecs. It's a dead project.
> + Div div = new Div();
> + div.setClass(classAttr);
> + div.setStyle(HTML_STYLE_PLACEHOLDER_PREFIX + classAttr);
> +
> + return div;
> + }
> +
> +
> + /**
> + * Overriding of the default equals method.
> + *
> + * @param obj the ActivityEvent to be compared with
> + * @return True if the two events have been generated by the same document and are equals or conflicting
> + */
> + @Override
> + public boolean equals(Object obj)
> + {
> + if (this == obj) {
> + return true;
> + }
> +
> + if (!(obj instanceof WatchListEvent)) {
> + return false;
> + }
This is not correct, any implementation of equals must be commutative:
this.equals(event) must return the same as event.equals(this).
> + // At first this method was returning true when the documents were the same and the events were the same type.
> + // Since we don't want to keep update events for documents that have been deleted this method has been modified
> + // to a point were it performs something different from a equals(), it returns true when obj is a delete event
> + // and 'this' is an update event. See WatchListEventManager#WatchListEventManager(Date, XWikiContext).
> + // TODO: refactoring.
> + WatchListEvent event = ((WatchListEvent) obj);
> + return prefixedFullName.equals(event.getPrefixedFullName()) && WatchListEventType.UPDATE.equals(getType())
> + && (WatchListEventType.UPDATE.equals(event.getType()) || WatchListEventType.DELETE.equals(event.getType()));
> + }
> +}
> Added: platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListJob.java
> ===================================================================
> --- platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListJob.java (rev 0)
> +++ platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListJob.java 2009-08-25 13:03:08 UTC (rev 22900)
> @@ -0,0 +1,257 @@
> +
> +/**
Why "abstract"? The documentation does not provide any information, the
fact that it implements a Job can be seen from the list of implements.
> + * WatchList abstract implementation of Quartz's Job.
> + *
> + * @version $Id$
> + */
> +public class WatchListJob extends AbstractJob implements Job
> +{
These two methods are pretty generic, they should be moved somewhere
else, in the core.
> + /**
> + * Initialize container context.
> + *
> + * @param context The XWiki context.
> + * @throws ServletException If the container initialization fails.
> + */
> + protected void initializeComponents(XWikiContext context) throws ServletException
> +
> + /**
> + * Clean the container context.
> + */
> + protected void cleanupComponents()
> Modified: platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListPluginApi.java
> ===================================================================
> --- platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListPluginApi.java 2009-08-25 12:55:58 UTC (rev 22899)
> +++ platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListPluginApi.java 2009-08-25 13:03:08 UTC (rev 22900)
> @@ -22,6 +22,7 @@
This change:
> -public class WatchListPluginApi extends PluginApi
> +public class WatchListPluginApi extends PluginApi<WatchListPlugin>
> {
means that we don't need getWatchlistPlugin anymore, but getProtectedPlugin.
> - return getWatchListPlugin().getWatchedSpaces(getXWikiContext().getUser(),
> - getXWikiContext()).contains(context.getDatabase() + ":" + context.getDoc().getSpace());
> + return getWatchListPlugin().getStore().getWatchedElements(context.getUser(), ElementType.SPACE, context)
> + .contains(context.getDatabase() + WatchListStore.WIKI_SPACE_SEP + context.getDoc().getSpace());
> }
> Added: platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListStore.java
> ===================================================================
> --- platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListStore.java (rev 0)
> +++ platform/xwiki-plugins/trunk/watchlist/src/main/java/com/xpn/xwiki/plugin/watchlist/WatchListStore.java 2009-08-25 13:03:08 UTC (rev 22900)
> @@ -0,0 +1,621 @@
@SuppressWarnings should only be used when there's no other way. It's
better to fix the warning.
> +@SuppressWarnings("serial")
> +public class WatchListStore implements EventListener
> +{
These two are very generic, I think they should be defined in the XWiki
Syntax.
> + /**
> + * Character used to separated wiki and space in XWiki model.
> + */
> + public static final String WIKI_SPACE_SEP = ":";
> +
> + /**
> + * Character used to separated space and page in XWiki model.
> + */
> + public static final String SPACE_PAGE_SEP = ".";
Enums are supposed to elliminate (or at least reduce) elseif
programming. This could go in a method of the enum.
> + private String getWatchListClassPropertyForType(ElementType type)
> + {
> + if (ElementType.WIKI.equals(type)) {
> + return WATCHLIST_CLASS_WIKIS_PROP;
> + } else if (ElementType.SPACE.equals(type)) {
> + return WATCHLIST_CLASS_SPACES_PROP;
> + } else if (ElementType.DOCUMENT.equals(type)) {
> + return WATCHLIST_CLASS_DOCUMENTS_PROP;
> + } else {
> + return StringUtils.EMPTY;
> + }
> + }
--
Sergiu Dumitriu
http://purl.org/net/sergiu/
Hi all,
The subject has been discussed already, see for example
http://markmail.org/message/h5e2qinrhsf2slww
The idea is to create a new top level project for modules (modules in
the sense of everything applications, macros, components, plugins, skin
extensions, etc.) that are not part of any products (or the platform)
and that are not necessarily contributed by the XWiki development team.
The difference with the sandbox is that sandbox is a place for modules
being incubated, and that are not in a finished state. Thus, I think one
of the rule for introducing new modules in the xlet repository would be
that a functional version of the module should be released and available
for download (for example on code.xwiki.org).
The name "xlet" is the name we've use historically to talk about this
repository, this is open for discussion. (personally I like the name -
we have to agree this is how we want to name a XWiki "pluggable module"
in the large sense).
Here is my +1 for the above
I would also like to propose that we create a new category of JIRA
projects : "XWiki Contributed Xlets" (or equivalent name) for such
projects that desire to track issues for their released module, and have
the tracker hosted by XWiki.org. I believe this will make easier to have
real release cycles for such modules (for example, we can link to the
JIRA project from the code.xwiki.org "module" page so that users can
report issues instead of using the comments, we can use JIRAs changelog
for release notes on the download page, etc.)
And my +1 for this second proposal
Please, let me know what you think
Jerome.
Hi,
In order to fix issue http://jira.xwiki.org/jira/browse/XWIKI-4428
I've had to dive very deep and fix Sun's URLClassLoader which has a
large number of problems. To do so I had to rewrite several classes
and I've taken sources from Emory Utilities (http://dcl.mathcs.emory.edu/php/loadPage.php?content=util/features.html#cla…
) and modified them slightly (since they were missing the ability to
support custom URL Stream handlers).
So I have a new URIClassLoader that extends URLClassLoader + a set of
associated classes (stream handlers and url connection implementations).
I'd like to commit this in a new xwiki-classloader module, dedicated
to classloading code (same as we have xwiki-xml for ex).
Let me know if you need more details.
Here's my +1
Thanks
-Vincent
Hi Devs,
Currently the method signature looks like:
public String officeToXHTML(String pageName, Map<String, String>
cleaningParams) throws XWikiGWTException
The contract is that this method will import whatever the "latest"
attachment to the given document into xhtml. This is bit unsafe and we have
a better option of using com.xpn.xwiki.wysiwyg.client.util.Attachment
instead.
So the new method that would be introduced is:
public String officeToXHTML(Attachment attachment, Map<String, String>
cleaningParams) throws XWikiGWTException;
This is more clean, expressive and safe.
WDYT?
- Asiri
Hi Everyone, Hi Marius,
I was wondering when I embed a GWT application, the Mail sample, provided
by GWT SDK into Xwiki page like this:
<script type="text/javascript" language='javascript'
src='js/xwiki/mail/mail.nocache.js'></script>
why this GWT application would not appear in the Xwiki page, nothing
happened? I have read the
http://code.google.com/webtoolkit/doc/1.6/DevGuideOrganizingProjects.html
<http://code.google.com/webtoolkit/doc/1.6/DevGuideOrganizingProjects.html>In
"The Bootstrap Sequence" section, it has an example
7. myApp/myApp.nocache.js completes, and the compiled script (
<hashname>.cache.html) begins fetching in a hidden IFRAME (this is
non-blocking).
8. <hashname>.cache.html completes. onModuleLoad() is not called yet, as
we're still waiting on externalScriptOne.js to complete before the document
is considered 'ready'.
9. externalScriptOne.js completes. The document is ready, so
onModuleLoad() fires.
Why in the Xwiki page, the onModuleLoad() seems does not work?
PS: I am willing to contribute to Xwiki, what can I do for you guys? What I
can think of is that I have poster presentation at the Graduate Research
Forum on November 6, 2009, I will present my work on posters and I print
and hand out some flyers about Xwiki to people to give Xwiki a advertise.
What do you guys think of. If anything I could help please let me know.
Thank you all.
--
http://freeleons.spaces.live.com/
Life might lead me where I least expected.However,I have faith I'm exactly
where I am meant to be.
Hi Marius,
Last time you said, "Of course you can keep it simple and load your tree
when the page loads.In the first versions of the GWT-based WYSIWYG editor
the Wysiwyg.onModuleLoad method was creating an editor instance for
each 'window.WysiwygXXX' JavaScript object found. " Could you please point
me to which source file I can refer to as an example to load the tree when
the page loads? I need to write a JavaScript like "XWikiWysiwyg.js" to do
that, right? Your bootstrapper is pretty cool and I think it is hard for me.
Maybe the in future it needs load on demand then I will do that.
PS: if you guys write English on Facebook, I would know what does it mean.
:-)
Thank you!
Leon
LinkedIn
------------
I'd like to add you to my professional network on LinkedIn.
- freeleons
Accept freeleons Wang's invite:
https://www.linkedin.com/e/isd/781708562/_daoWutU/
------
(c) 2009, LinkedIn Corporation
For my application I would like to be able to easily set up a set of 'home' spaces for each student in a class as well as a common shared space. For the 'home' spaces I would like the default permissions to be world readable but only editable by the space owner. The owner can open it up if they desire later. The shared class space would be editable by all the students. Ideally I would like to import a csv that had the user names and email addresses. I see the process as follows:
Read/parse the csv file
Create each user, assigning either a random password or one read from the csv
Create space for each user and set permissions on the space
Put all the students into a group and create a shared space with group edit permissions
Has anyone done something similar? What is the best approach for something like this? Groovy vs java jar? Any pointers to the apis to easily create users/assign permissions etc would be helpful as well.
Thanks,
Glenn
The XWiki development team is pleased to announce the release of XWiki
Enterprise 1.9.4 and XWiki Enterprise Manager 1.7.4.
Go grab it at http://www.xwiki.org/xwiki/bin/view/Main/Download
This release is targeted to users who are not yet ready to upgrade to
the more recent 2.0.x releases, but who still need some of the more
important recent fixes and improvements.
Improvements since XWiki Enterprise 1.9.3:
* XWIKI-4139 : New {{formula}} macro for displaying mathematical expressions
Important fixes:
* XWIKI-4309 : Links fail to open in a new window
* XWIKI-4249 : . key acts like the delete key at the end of the list items
* XWIKI-4349 : Livetable "avatar", "photos" and "attachments"
columns do not work
* XWIKI-4385 : NPE in XWikiDocument.CopyDocument() introduced by
the patch of XWIKI-4283
* XWIKI-4314 : Switching the editor tabs without focusing the rich
text area can lead to HTML in the source editor
* XWIKI-4170 : Wrong encoding in ApplicationResources_pt.properties
* XWIKI-4283 : XWikiDocument.copyDocument duplicate the object's uniques ids
For more information see the Release notes at:
http://www.xwiki.org/xwiki/bin/view/Main/ReleaseNotesXWikiEnterprise194
and http://www.xwiki.org/xwiki/bin/view/Main/ReleaseNotesXEM174
Thanks,
JV.
Hi devs,
Since XE 2.0 will be released soon I'd like to release XE 1.9.4 and
XEM 1.7.4 tomorrow.
After this XEM release I suggest to create the 1.7 branch and make XEM
trunk 2.0.
Changelog since 1.9.3:
XWIKI-4249 . key acts like the delete key at the end of the list items
XWIKI-4263 Include macro should expose the default value of "context" property
XWIKI-4175 Livetable sorting failed when the text of the header column
is clicked
XWIKI-4093 Refactor the code to use the new EventHandler system
XWIKI-4158 Update the Feed Plugin to work properly with latest XWiki
and Rome Code
XWIKI-4170 Wrong encoding in ApplicationResources_pt.properties
XWIKI-4139 New {{formula}} macro for displaying mathematical expressions
Here's my +1.
JV.
Hi,
Just looked at the Sonar reports for XWiki (which are false regarding
testing coverage btw since they don't include integration tests) but
the duplicate section is interesting.
Global dashboard for XWiki Platform:
http://nemo.sonarsource.org/project/index/168852
For example we have quite a few code duplication for the REST module:
http://nemo.sonarsource.org/drilldown/measures/168852?highlight=duplicated_…
[]=128556
And several other new modules too.
Would be good if devs could have a look and fix duplicates they have
introduced :)
Thanks
-Vincent
Hi Marius,
I have installed Firebug days ago since you first time recommended and I am
learning it. Thank you for your recommendation!
Thank you guys for helping me. I really appreciate it. I will try to figure
out your replies and see whether I have further questions.
Leon
Hi (especially Denis),
I've just found an interesting library: Emory Utilities
It has a URIClassLoader that fixes a lof of bugs from the JDK version
and will work for fixing my problem with the script macros.
Doc: http://dcl.mathcs.emory.edu/php/loadPage.php?content=util/features.html#cla…
Sources: http://dcl.mathcs.emory.edu/bin/viewvc/software/harness2/trunk/util/src/edu…
Denis, could you have a look and check if it solves the problems you
have also solved with your implementation? From what I see it solves
most of the pb you have seen and a few others related to special chars
in URLs. I just want to be sure your version isn't fixing something
more this impl. is not fixing.
I'll be trying to use it over the week end but I've already found a
way to make it work for my use case (even though these guys didn't
know about dependency injection at that time - it was back in 2005...).
Thanks
-Vincent
Hi Devs,
I'm looking for someone with XWiki development experience who would also
happen to be living in Australia at the moment. Do you know someone who
does?
Thanks,
Guillaume
--
Guillaume Lerouge
Product Manager - XWiki
Skype: wikibc
Twitter: glerouge
http://guillaumelerouge.com/
Hello XWiki developers,
can someone explain me what is the strategy to define the mime-type of
an attachment?
I see not configurable map nor any setter on the attachment types.
Is there any way I can enrich this or is it simply taking over the
mime-type provided the browser (which, too often, ends up being
application/octet-stream) ?
thanks in advance
paul
Hi XWiki Devs & Users,
It's roadmap time again!
Based on the previous roadmap, feedback on the lists and the results of the
survey we conducted (see
http://www.xwiki.org/xwiki/bin/view/Blog/Features+Survey+Results ), here's a
list of stuff we might want to work on in the XE 2.1 timeframe which will
last approximately until December 2009:
IMPROVEMENTS
On top of the usual bugfix work, here's a list of improvements we might want
to bring in the course of the release in order to stabilize the 2. branch as
much as we can:
- Colibri skin
- Clean the skin so that it's no longer a pile of code added on top of
Toucan
- Improve the ColorTheme page (theme catalog, theme creation)
- WYSIWYG editor
- Test and improve IE8 compatibility
- Test and improve Chrome / Safari compatibility
- Add more translations
- Rendering
- Internationalize
- Add translations
- Conversion to 2.0 syntax
- XAR 2.0 (notably Blog & Panels)
- Office importer
- The application shouldn't be displayed when the office server is not
running
- Wiki macros
- Textarea should be larger
- Importer
- Make the import create new versions of existing pages instead of
overwriting them
- *Search (one of the most asked for features in the survey)*
- Fix the bugs with our Lucene Search implementation to make it the
default one
- Finish implementing the new search UI
- Performance (one of the most asked for features in the survey)
- Clean and apply Denis Gervalle's patch related to attachment upload
memory handling
- Clean and apply Caleb James DeLisle's patch related to document
loading
- Keep working on making the skin lighter
- Other?
- User Profile UI
- Improve the watchlist UI
- Make the user profile look clearer
NEW FEATURES
We won't have the time to work on all of them, but here's a list of new
features we might want to consider working on:
- Skin -> revamp / move the action bar
- CAPTCHA Integration -> make CAPTCHAS available on login / comments
- Application Manager -> create applications descriptors, ability to
version applications
- Document Type Manager -> make XClass & application creation easy
through a nicer UI
- Invitation Manager -> make it easier to add users to the wiki (send an
email allowing account creation)
- Multipage Management tools -> create and export lists of pages
Feedback is welcome and appreciated.
Thanks,
Guillaume
--
Guillaume Lerouge
Product Manager - XWiki
Skype: wikibc
Twitter: glerouge
http://guillaumelerouge.com/
Hello everybody,
this is my first post to the list, i'm also newbie with Xwiki. I was
about to post this same question myself but Caleb James DeLisle took the
lead:
>I was wondering if it would be worthwhile to try working on allowing
>objects to contain other objects as well as properties (like Java)
Put in other words, could we have Classes where one (or more) of its
properties are instances of other Classes? It seems from what i read on
http://platform.xwiki.org/xwiki/bin/view/DevGuide/DataModel
that the answer right now would be "no". Could someone shed some light
on why is it so (what's the reason behind)?
Thank you !
Guillem
Hi Devs,
right now the Office Importer feature is available through a button in the
toolbar of the WYSIWYG editor. I think it should be moved to the editor's
top menubar, next to "Macros". Here's the rationale:
- The toolbar has mostly text formatting button while the Office Importer
is a much bigger feature
- Other features that require opening a dialog box (link, images, tables,
macros) are located in the top menubar
The entry would have 2 subentries: paste document & import document.
WDYT?
Guillaume
--
Guillaume Lerouge
Product Manager - XWiki
Skype: wikibc
Twitter: glerouge
http://guillaumelerouge.com/
Hi Marius,
I have updated the code you mention. And I find out I forget to copy
resources/js/xwiki/wysiwyg/xwe
from the place that I built to the server's resources/js/xwiki/wysiwyg/xwe.
Thank you for your help again!
Probably this results the problems below:
"It this a public web site? Can you create me a temporary account to debug
the problem?"
It is a server runs on campus (Miami University) network in order to protect
it from bad people. Thank you very much for helping me. I really
appreciate it.
"Can you install the Firebug Firefox extension?"
I have successfully installed in on WinXP PC, it seems not work on my vista
laptop. Here is the error that I could find under DOM tab:
$continue: Error: "throw $continue" is deprecated, use "return" instead
filename: "
http://wiki.burge.csi.muohio.edu:8080/xwiki/resources/js/prototype/prototyp…
"
lineNumber: 4725
message: ""throw $continue" is deprecated, use "return" instead"
name: "Error"
stack: "Error("\"throw $continue\" is deprecated, use \"return\"
instead")@:0\n@
http://wiki.burge.csi.muohio.edu:8080/xwiki/resources/js/prototype/prototyp…
\n"
I did not see any from Script tab.
And Here is the error message IE8 returns:
"
Webpage error details
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64;
Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2;
.NET CLR 3.5.30729; CIBA;
staticlogin:product=cbpro09&act=login&info=ZmlsZW5hbWU9UG93ZXJ3b3JkMjAwOVByby4yNTI2OS40MDEwLmV4ZSZtYWM9NjQyMTZDODM0QTIyNDIyNkEzMEUxMjFEOEFFRTBEOTYmcGFzc3BvcnQ9JnZlcnNpb249MjAwOS4wNC4yOS4yLjI4MSZjcmFzaHR5cGU9MQ==&verify=550370cea5bed2cbf89407456ed93587;
.NET CLR 3.0.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
Timestamp: Thu, 1 Oct 2009 22:56:31 UTC
Message: 'isc' is undefined
Line: 7
Char: 1
Code: 0
URI:
http://wiki.burge.csi.muohio.edu:8080/xwiki/resources/js/smartclient/overwr…
Message: 'isc' is undefined
Line: 59
Char: 1
Code: 0
URI:
http://wiki.burge.csi.muohio.edu:8080/xwiki/bin/skin/resources/js/xwiki/xwi…
Message: 'Wysiwyg' is undefined
Line: 217
Char: 5
Code: 0
URI:
http://wiki.burge.csi.muohio.edu:8080/xwiki/bin/edit/Sandbox/TestPage1?edit…
Message: 'Wysiwyg' is undefined
Line: 256
Char: 1
Code: 0
URI:
http://wiki.burge.csi.muohio.edu:8080/xwiki/bin/edit/Sandbox/TestPage1?edit…
"
It's missing a lot of changes...
-Vincent
On Oct 2, 2009, at 12:00 AM, notifications(a)xwiki.org wrote:
> Hello Developers,
>
> This message is sent by XWiki. Here are the documents in your
> watchlist that have been modified since the last notification:
> <wiki.gif> xwiki
> <space.gif> XWiki
> <document.gif> XWikiNotifications XWiki.XWikiNotifications
>
> On 2009/10/01 15:47, the document has been modified by Developers
> (XWiki Notifications)
> <object.gif>XWiki.XWikiUsers
> <string.png>email:
> jerome@xwiki.comnotifications@xwiki.org
> <document.gif> XWiki Preferences XWiki.XWikiPreferences
>
> On 2009/10/01 16:18, the document has been modified by Jerome
> Velociter
> <object.gif>XWiki.XWikiPreferences
> <string.png>admin_email:
> notifications(a)xwiki.org
> <textarea.png>meta:
> <metadata.gif>author: XWiki.VincentMassol > XWiki.jvelociter
> <document.gif> jvdrean XWiki.jvdrean
>
> On 2009/10/01 15:45, the document has been modified by Jean-Vincent
> Drean
> <object.gif>XWiki.WatchListClass
> <textarea.png>wikis:
> ,xwiki,enterprise,workspaces
Hi all,
I propose we create a user on XWiki.org that will subscribe to daily
watchlist notifications on the xwiki.org wikis, with
notifications(a)xwiki.org as email address.
We can try to watch entire wikis, though we might get some noise on
certain wikis (for example with all users that are created on the main
wiki).
WDYT ?
+1 to try out this.
Jerome.
Hi Anca,
Be very very careful with ThreadLocal. It's very easy to make mistakes
and cause memory leaks. Actually I think you may have introduced one
already ;) (please do some web research on ThreadLocal you'll see it
has some caveats and they must absolutely be freed when the thread
exits).
I believe this needs to be discussed more to ensure it's the right way
and doesn't cause pbs.
Also we already have an ExecutionContext so I'm not sure why we need
this.
Can you please explain?
Thanks
-Vincent
On Oct 1, 2009, at 10:13 AM, lucaa (SVN) wrote:
> Author: lucaa
> Date: 2009-10-01 10:13:20 +0200 (Thu, 01 Oct 2009)
> New Revision: 24158
>
> Modified:
> platform/web/trunk/gwt/src/main/java/com/xpn/xwiki/gwt/api/server/
> XWikiServiceImpl.java
> platform/web/trunk/wysiwyg/src/main/java/com/xpn/xwiki/wysiwyg/
> server/DefaultWysiwygService.java
> Log:
> XWIKI-4411: XWikiServiceImpl's xwiki context is not handled threadsafe
> * handled the prepared context in a ThreadLocal member.
>
>
> Modified: platform/web/trunk/gwt/src/main/java/com/xpn/xwiki/gwt/api/
> server/XWikiServiceImpl.java
> ===================================================================
> --- platform/web/trunk/gwt/src/main/java/com/xpn/xwiki/gwt/api/
> server/XWikiServiceImpl.java 2009-09-30 21:49:09 UTC (rev 24157)
> +++ platform/web/trunk/gwt/src/main/java/com/xpn/xwiki/gwt/api/
> server/XWikiServiceImpl.java 2009-10-01 08:13:20 UTC (rev 24158)
> @@ -66,7 +66,7 @@
> {
> private static final Log LOG = LogFactory.getLog(XWiki.class);
>
> - private XWikiContext context;
> + private ThreadLocal<XWikiContext> context;
>
> /**
> * We override the default processCall method in order to
> provide XWiki initialization before
> @@ -131,7 +131,7 @@
> }
>
> context.put("ajax", new Boolean(true));
> - this.context = context;
> + this.context.set(context);
> }
>
> private void initializeContainerComponent(XWikiContext context)
> @@ -168,7 +168,7 @@
>
> protected XWikiContext getXWikiContext()
> {
> - return this.context;
> + return this.context.get();
> }
>
> protected XWikiGWTException getXWikiGWTException(Exception e) {
>
> Modified: platform/web/trunk/wysiwyg/src/main/java/com/xpn/xwiki/
> wysiwyg/server/DefaultWysiwygService.java
> ===================================================================
> --- platform/web/trunk/wysiwyg/src/main/java/com/xpn/xwiki/wysiwyg/
> server/DefaultWysiwygService.java 2009-09-30 21:49:09 UTC (rev 24157)
> +++ platform/web/trunk/wysiwyg/src/main/java/com/xpn/xwiki/wysiwyg/
> server/DefaultWysiwygService.java 2009-10-01 08:13:20 UTC (rev 24158)
> @@ -302,14 +302,8 @@
> getXWikiContext().setDatabase(wikiName);
> }
> spaceNamesList =
> getXWikiContext().getWiki().getSpaces(getXWikiContext());
> - // get the blacklisted spaces from the session as
> they've been set in xwikivars.vm, when the page edited
> - // with this wysiwyg was loaded
> - // TODO: remove this when the public API will exclude
> them by default, or they'll be set in the config
> - List<String> blacklistedSpaces =
> - (ArrayList<String>)
> getThreadLocalRequest
> ().getSession().getAttribute("blacklistedSpaces");
> - if (blacklistedSpaces != null &&
> blacklistedSpaces.size() > 0) {
> - spaceNamesList.removeAll(blacklistedSpaces);
> - }
> + // remove the blacklisted spaces from the all spaces list
> + spaceNamesList.removeAll(getBlackListedSpaces());
> Collections.sort(spaceNamesList);
> } catch (XWikiException e) {
> e.printStackTrace();
> @@ -322,6 +316,26 @@
> }
>
> /**
> + * Helper function to retrieve the blacklisted spaces in this
> session, as they've been set in xwikivars.vm, when the
> + * page edited with this wysiwyg was loaded. <br />
> + * TODO: remove this when the public API will exclude them by
> default, or they'll be set in the config.
> + *
> + * @return the list of blacklisted spaces from the session
> + */
> + @SuppressWarnings("unchecked")
> + private List<String> getBlackListedSpaces()
> + {
> + // get the blacklisted spaces from the session
> + List<String> blacklistedSpaces =
> + (ArrayList<String>)
> getThreadLocalRequest
> ().getSession().getAttribute("blacklistedSpaces");
> + // always return a list, even if blacklisted spaces
> variable wasn't set
> + if (blacklistedSpaces == null) {
> + blacklistedSpaces = new ArrayList<String>();
> + }
> + return blacklistedSpaces;
> + }
> +
> + /**
> * {@inheritDoc}
> *
> * @see WysiwygService#getPageNames(String, String)
> @@ -379,12 +393,31 @@
> throws XWikiGWTException
> {
> try {
> + String quote = "'";
> + String doubleQuote = "''";
> // FIXME: this fullname comparison with the keyword does
> not contain the wiki name
> - String escapedKeyword = keyword.replaceAll("'",
> "''").toLowerCase();
> + String escapedKeyword = keyword.replaceAll(quote,
> doubleQuote).toLowerCase();
> + // add condition for the doc to not be in the list of
> blacklisted spaces.
> + // TODO: might be a pb with scalability of this
> + String noBlacklistedSpaces = "";
> + List<String> blackListedSpaces = getBlackListedSpaces();
> + if (!blackListedSpaces.isEmpty()) {
> + StringBuffer spacesList = new StringBuffer();
> + for (String bSpace : blackListedSpaces) {
> + if (spacesList.length() > 0) {
> + spacesList.append(", ");
> + }
> + spacesList.append(quote);
> + spacesList.append(bSpace.replaceAll(quote,
> doubleQuote));
> + spacesList.append(quote);
> + }
> + noBlacklistedSpaces = "doc.web not in (" +
> spacesList.toString() + ")";
> + }
> List<XWikiDocument> docs =
> getXWikiContext().getWiki().search(
> - "select distinct doc from XWikiDocument as doc
> where lower(doc.title) like '%" + escapedKeyword
> - + "%' or lower(doc.fullName) like '%" +
> escapedKeyword + "%'", count, start, getXWikiContext());
> + "select distinct doc from XWikiDocument as doc
> where " + noBlacklistedSpaces
> + + " and (lower(doc.title) like '%" +
> escapedKeyword + "%' or lower(doc.fullName) like '%"
> + + escapedKeyword + "%')", count, start,
> getXWikiContext());
> return prepareDocumentResultsList(docs);
> } catch (XWikiException e) {
> throw getXWikiGWTException(e);
> @@ -406,7 +439,7 @@
> for (XWikiDocument doc : docs) {
> com.xpn.xwiki.gwt.api.client.Document xwikiDoc = new
> com.xpn.xwiki.gwt.api.client.Document();
> xwikiDoc.setFullName(doc.getFullName());
> -
> xwikiDoc.setTitle(doc.getDisplayTitle(getXWikiContext()));
> +
> xwikiDoc.setTitle(doc.getRenderedTitle(Syntax.XHTML_1_0,
> getXWikiContext()));
> // FIXME: shouldn't use upload URL here, but since we
> don't want to add a new field...
> xwikiDoc.setUploadURL(doc.getURL(VIEW_ACTION,
> getXWikiContext()));
> results.add(xwikiDoc);
>
> _______________________________________________
> notifications mailing list
> notifications(a)xwiki.org
> http://lists.xwiki.org/mailman/listinfo/notifications