Hi devs !
In 5.2, we have introduced Workspace Application in XE. Now, we should go
further and merge Wiki Application with Workspaces.
= New idea =
* Add a "hidden" field to the Wiki. For example, I would like to be able to
create wiki:
** which can not be seen by others
** which does not appear in searches
** e.g: workspacetemplate, or on a farm if I don't want people to know that
I host a company AND its competitor
= Options =
* In your wiki, do you want to have the "Home" menu?
* In your wiki, do you want to create your own users?
= XARs and template =
* The home menu is enabled only if the user want it (trivial)
* The registration button should redirect to the home wiki depending on the
configuration (trivial)
* Disable XWiki.AdminRegistrationSheet, XWiki.AdminUsersSheet from the
Administration (depending on the configuration)
* Create a new UI, partially based on the current WorkspaceManager and
WikiManager spaces.
= API =
* Create a new API: xwiki-platform-wiki.
* The old modules (xwiki-platform-wiki-manager and
xwiki-platform-workspace) go into legacy, and we mark them as deprecated.
* The new API will use the new modules of Vincent:
https://github.com/xwiki/xwiki-platform/compare/feature-resource-and-wiki-m…
= Proposal for the API =
* xwiki-platform-wiki
** xwiki-platform-wiki-descriptor
*** xwiki-platform-wiki-descriptor-api
**** WikiDescriptor.java
***** ID
***** Alias
***** Hidden
***** Description?
***** Ability to add custom data (where all will be stored)
**** WikiDescriptorManager.java
***** getAll()
***** set()
***** remove()
***** getByWikiAlias()
***** getByWikiId()
** xwiki-platform-wiki-manager (but this name conflicts with the previous
module that we put into legacy...)
*** WikiManager.java
**** createWiki() (create an empty wiki)
**** deleteWiki()
**** copyWiki()
** xwiki-platform-wiki-template
*** WikiTemplateManager.java
**** setWikiAsTemplate()
**** unsetWikiAsTemplate()
**** getWikiTemplates()
**** isWikiTemplate()
** xwiki-platfrom-wiki-user (handle or not the local users)
*** WikiUsersManager.java
**** canWikiHasLocalUsers()
**** setCanWikiHasLocalUsers()
**** getWikiOwner()
**** setWikiOwner()
**** getMembershipType() (join/invite only/ask to join)
**** setMembershipType()
**** getWikiUsers() (list of the local users + those who are
'members' of the wiki)
** xwiki-platform-wiki-script (for script services)
*** Wiki.java (only an helper)
**** getDescriptor()
**** getId()
**** getAlias()
**** addAlias()
**** removeAlias()
**** getReference()
**** IsTemplate()
**** setIsTemplate()
**** getOwner()
**** setOwner()
**** canHasLocalUsers()
**** setCanHasLocalUsers()
**** getMembershipType()
**** setMembershipType()
**** getUsers()
**** isHidden()
**** setHidden()
**** getDescription()
**** setDescription()
*** WikiManagerScript.java ("$services.wikimanager" but the name
conflicts with the previous module...)
**** getAllWikis()
**** getHomeWiki()
**** getWikiByAlias()
**** getWikiById()
**** getWikiTemplates()
**** createWiki()
**** deleteWiki()
**** copyWiki()
**** isWikiExists()
**** isWikiNameAvailable()
**** joinWiki()?
**** askToJoinWiki()?
** xwiki-platform-wiki-ui (pages for both the home AND the (sub)wikis)
*** ...
+ write tests
+ need a migration path
+ in the future:
* Create a new wiki from a flavor:
** instead of creating a wiki from a template, you give an extension ID
If you like this proposal, I will try to implement it as close it is
possible, but I may change some elements to minimize dependencies. I will
tell you.
WDYT?
Thanks,
Louis-Marie