On Tue, Oct 1, 2013 at 2:16 PM, Vincent Massol <[email protected]> wrote: > 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? > >> = 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. > >> = 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? > >> * 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? :) > >> = 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? > >> ** xwiki-platfrom-wiki-user (handle or not the local users) >> *** WikiUsersManager.java >> **** canWikiHasLocalUsers() > > Bad name! Suggestion: hasLocalUsers() or supportsLocalUsers() > >> **** setCanWikiHasLocalUsers() > > Ouch… Suggestion: hasLocalUsers(boolean) or supportsLocalUsers(boolean). > >> **** 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? > >> ** xwiki-platform-wiki-script (for script services) >> *** Wiki.java (only an helper) >> **** getDescriptor() >> **** getId() >> **** getAlias() >> **** addAlias() >> **** removeAlias() >> **** getReference() >> **** IsTemplate() >> **** setIsTemplate() >> **** getOwner() >> **** setOwner()
>> **** canHasLocalUsers() I need this (renamed as suggested by Edy) for http://jira.xwiki.org/browse/XWIKI-9479 . >> **** 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). I think too that one module is enough in this case for the wiki related APIs. Thanks, Marius > >> + 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

