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-modules(wiki-descriptor)

= 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
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to