On Mon, Jun 30, 2014 at 9:50 AM, [email protected] <[email protected]> wrote:
>
> Hi devs,
>
> Problem
> =======
>
> This week end I’ve had an idea that solves the following issue:
>
> - Make it easy for the user to be able to change his wiki's home page
> - Make it understandable when clicking “edit” on the home page
>
> Solution
> =========
>
> At some point in the past, I moved the dashboard which was on the home page 
> to the Dashboard space. My rationale at the time was:
> - if the user removes the home page then the user will still be able to 
> navigate to the Dashboard by clicking on the “Dashboard” link in the 
> Applications Panel
> - when editing the home page it’s “just” an Include
>
> Said differently, I considered that the home page can be configured to point 
> to any app.
>
> This is what I’d like to push for and make it easy for the user to configure 
> the home page so that it can point to any app.
>
> Implementation
> ===============
>
> - A HomePage.HomePageClass XClass with one “reference” field which is the 
> reference to the document to include from the home page (the app to point to 
> if you prefer)
> - A HomePage.HomePageSheet which is bound to the HomePage.HomePageClass
> - One instance of the HomePage.HomePageClass put in Main.WebHome so that when 
> you click “edit” on the home page, HomePage.HomePageSheet is called and 
> displays some instructions about changing the home page. Here’s an example:
>

> https://www.evernote.com/shard/s119/sh/b682040d-6a09-4cfc-b6aa-1eab4b4d8d5e/f970d4cd4c0e2e73742e9f6e6fb3793c

I'd also add a link to "use a blank page" which would take the user to
the wiki/wysiwyg edit mode for the home page and let him type any
content there, considering that the sheet will display this content
when present, as you say below.

>
> Here’s the content of HomePageSheet (not finished, I still need to code the 
> part that changes the “reference” property):
>
> {{velocity}}
> #if ($xcontext.action == 'edit')
>   #set ($previewenabled = 'false')
>   The content of this home page can be the content of any page you wish.
>
>   Right now it is displaying the content of the 
> [[$doc.getValue('reference')>>$doc.getValue('reference')]] page.
>
>   In order to change it, click the "Use as Home Page" link in the table below 
> for the page you wish to use as your new home page.
>
>   #set($collist = ['doc.name', 'doc.space', 'doc.date', 'doc.author', 
> '_actions'])
>   #set($colprops = {
>     'doc.title' : { 'type' : 'text' , 'size' : 30, 'link' : 'view' },
>     'doc.fullName' : { 'type' : 'text' , 'size' : 30, 'link' : 'view' },
>     'doc.name' : { 'type' : 'text' , 'size' : 30, 'link' : 'view' },
>     'doc.space' : { 'type' : 'text', 'link' : 'space' },
>     'doc.date' : { 'type' : 'date' },
>     'doc.author' : { 'type' : 'text', 'link' : 'author' },
>     '_actions': { 'html': true, 'sortable': false, 'actions': ['Use'] }
>   })
>   #set($options = {
>     'translationPrefix' : 'platform.index.'
>   })
>   #livetable('documents' $collist $colprops $options)
> #else
>   ## If there's content don't use the default app
>   #if ($doc.content.trim().length() > 0)
>     $doc.content
>   #else
>     {{include reference="$doc.getValue('reference')" context="new"/}}
>   #end
> #end
> {{/velocity}}
>
> - Note that if the user forces the edition in wiki mode or WYSIWYG mode of 
> the home page he gets an empty page and he can put content and when he saves 
> his content is displayed! (this is achieved through the following portion of 
> the script in HomePageSheet:
>

>   ## If there's content don't use the default app
>   #if ($doc.content.trim().length() > 0)
>     $doc.content
>   #else
>     {{include reference="$doc.getValue('reference')" context="new"/}}
>   #end

What about the edit mode when content is present? Should the sheet
redirect to wiki/wysiwyg edit mode when the content is not empty? But
then the user needs a way to 'reset' the initial/factory behaviour, as
otherwise he might not know that he needs to empty the content.

>
> - Also note that I’d like to propose to add the ability to configure the 
> buttons to display in edit mode. ATM I think only the preview one can be 
> hidden but we could do the same for all. In our case here we could decide to 
> only leave the “Cancel” one active since clicking on “use” in the Livetable 
> could set the page to include immediately. The other option is to use a 
> different picker than the livetable and keep the save buttons. Any suggestion 
> for this?
>
> The idea would be to package this as an HomePage Application in 
> xwiki-platform and would be bundled by default in XE.
>

> WDYT?

+1

Thanks,
Marius

>
> 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