Hi Vincent,

My comments below:

2013/10/1 Vincent Massol <[email protected]>

> Hi Guillaume,
>
> On Oct 1, 2013, at 12:21 PM, Guillaume Louis-Marie Delhumeau <
> [email protected]> wrote:
>
> > 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
>
> So if i understand correctly:
> * This "hidden" field would be in the wiki descriptor right?
> * If the user selects "show hidden documents" (which might need to be
> renamed to something more generic now) the wiki would be visible and appear
> in searches/etc, right?
>

Yes, but we can refine this concept. We could imagine that hidden wikis
should be visible by administrators only.


>
> > = Options =
> > * In your wiki, do you want to have the "Home" menu?
>
> See comments on http://jira.xwiki.org/browse/XWIKI-9518
>
> > * In your wiki, do you want to create your own users?
>
> I would not phrase it like this. Rather: "Allow local users". If enabled
> then global users would work too, in addition to the ability to create
> local users.
>

OK.


>
> > = XARs and template =
> > * The home menu is enabled only if the user want it (trivial)
>
> How is that different from above (ie
> http://jira.xwiki.org/browse/XWIKI-9518)?
>
> > * The registration button should redirect to the home wiki depending on
> the
> > configuration (trivial)
>
> Why based on configuration? Why not redirect automatically when the user
> doesn't allow local users?
>

It is why I meant.


>
> > * Disable XWiki.AdminRegistrationSheet, XWiki.AdminUsersSheet from the
> > Administration (depending on the configuration)
>
> Ok so if the wiki doesn't allow local users then don't show admin options
> related to users. Good.
>
> > * Create a new UI, partially based on the current WorkspaceManager and
> > WikiManager spaces.
>
> Any more details on this? :)
>

Not for now ;)


>
> > = 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()
>
> What is the rationale for 2 modules instead of one for
> xwiki-platform-wiki-manager and xwiki-platform-wiki-template? (not saying
> it's bad, just curious)
>
> Is it because you want to see template wiki as something optional?
>

Yes, it is. Because in the future, we will have the notion of "flavors", so
we may decide to not use template wiki anymore. I wanted to have a minimal
wiki-manager module and some optional ones.


>
> >  ** xwiki-platfrom-wiki-user (handle or not the local users)
> >    *** WikiUsersManager.java
> >      **** canWikiHasLocalUsers()
>
> Bad name! Suggestion: hasLocalUsers() or supportsLocalUsers()
>

I prefer supportsLocalUsers(), because it can return true even if there is
actually no users in the wiki!


>
> >      **** setCanWikiHasLocalUsers()
>
> Ouch… Suggestion: hasLocalUsers(boolean) or supportsLocalUsers(boolean).
>

OK.


>
> >      **** getWikiOwner()
> >      **** setWikiOwner()
> >      **** getMembershipType() (join/invite only/ask to join)
> >      **** setMembershipType()
> >      **** getWikiUsers() (list of the local users + those who are
> > 'members' of the wiki)
>
> Whether the wiki accepts local users or not should be stored in the wiki
> descriptor.
>
> Since you put this in a separate module, does it mean you want to see it
> as some optional module?
>

Yes. Someone might want to build a wiki with absolutely no notion of users.

>  ** 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()?

-1. All script services should be located in the modules they wrap.
>
> So if you have 4 modules, I see 4 script services (located in a script
> package in those modules).
>
> You cannot say that the modules are optional and then have a big script
> module that contains everything. It'll obviously not work :)
>

> Example: I don't have xwiki-platfrom-wiki-user JAR, I shouldn't be able to
> call $services.<name>.canHasLocalUsers()
>
> >  ** xwiki-platform-wiki-ui (pages for both the home AND the (sub)wikis)
> >      *** …
>
> Need to verify that the UI pages are not related to a given module above.
> If so then that module should have its own UI module to make it optional.
>
> To summarize:
> * Either the modules above are optional and they need to be fully optional
> (api, script service, UI)
> * Or they're not optional and why do we need to have so many modules? One
> would be enough (with possibly different packages though).
>
> > + 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?
>
> Sounds good in general.
>
> Thanks
> -Vincent
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to