Hi, On Jan 20, 2009, at 11:33 AM, Jean-Vincent Drean wrote:
Hi devs,
There are 4 votes required, see bellow.
1/ UI. See the screenshot at http://incubator.myxwiki.org/xwiki/bin/view/Mockups/Children Note that this list comes along with a generic way of building spaces/pages/attachment/comments lists (ul) in our skin files.
Here's my +1
Three questions: 1) Is the children information better located in a separate tab or under the Information tab? 2) Shouldn't we reuse our upcoming Treeview component for implementing the children information. We could make that Treeview component take a base document and display all children of that base document. If the user has edit rights then he would be allowed to drag and drop Treeview nodes around, reorganizing child pages directly. 3) Are we not starting to have too many tabs? (hence question 1) above). This is an open question. I don't know the answer. Otherwise +1 in general.
2/ Add a getChildren() method to XWikiDocument and Document (API). Rationale: XWiki is a wiki and the parent/child relationship should be made more visible and easy to display in order to make it useful. I know we should try not to put new methods in our APIs but IMHO this should have been there from the beginning.
Proposal:
{{code}} Document.java
public List<String> getChildren() throws XWikiException { return this.doc.getChildren(getXWikiContext()); }
XWikiDocument.java
public List<String> getChildren(XWikiContext context) throws XWikiException { String hql ="select doc.fullName from XWikiDocument doc " + "where doc.parent='" + getFullName() + "' order by doc.space, doc.name"; return context.getWiki().search(hql, context); } {{/code}}
Note: I've put doc.space and doc.name in the order by clause since getting pages in the 'absolute' alphabetical order afterwards is easy using util.sort while the contrary is not true.
Here's my +1
+1
3/ Add a $blacklistedSpaces list in xwikivars.vm. Rationale: avoid duplicates; this list is already present in some panels and pages since it is a common need.
Proposal: #set($blacklistedSpaces = ["Import", "Panels", "Scheduler", "Stats", "XAppClasses", "XAppSheets", "XAppTemplates", "XWiki"])
Here's my +1
Wouldn't it be better to implement this as Sergiu has started doing for pages (hidden documents). We could decide that if the WebHome for a space is hidden then the whole space is hidden for example.
4/ Don't display the number of children in tab. Rationale: limit the number of HQL queries made on the view action.
Here's my +1
+1 -Vincent http://xwiki.com http://xwiki.org http://massol.net