On Mon, May 10, 2010 at 22:45, Wouter Boasson <Wouter.Boasson(a)rivm.nl>wrote;wrote:
Hi,
I extended two panels in a way that makes life more easy for the common
user (XWiki/XE 2.2.4): create panel, documenent info (editor).
1. The create page panel (Panels.NewPage)
-shows current spacename
-'create space' option is only shown when the user has the appropriate
rights, and is at the top-level of the wiki
-automatically generates a link to the parent page (but not to the
WebPreferences page)
#if($hasEdit || $showEmptyPanels)
#panelheader($msg.get("create"))
<form method="post" action="$doc.getURL("view",
"xpage=create")">
<div class="padded centered">
<label for="tocreate"
class="hidden">$msg.get("xe.panels.new.itemType")</label>
<select id="tocreate" name="tocreate"
class="panelselect">
<option
value="page">$msg.get("xe.panels.new.page")</option>
#if ($hasCreateSpace && $doc.fullName == "Main.WebHome")
<option
value="space">$msg.get("xe.panels.new.space")</option>
#end
</select>
</div>
<div class="padded centered">
<input type="hidden" name="template" value="" />
#if($doc.Name!="WebPreferences")
<input type="hidden" name="parent"
value="$msg.get("$doc.Space.$doc.Name")"
/>
#end
<label for="title"
class="hidden">$msg.get("xe.panels.new.name")</label>
<input type="text" id="title" name="title"
value="$msg.get("
xe.panels.new.name")" class="panelinput"
onfocus="if(this.value=='$msg.get("xe.panels.new.name")')
this.value=''"
onblur="if(this.value=='')
this.value='$msg.get("xe.panels.new.name")'"/>
In space: $doc.Space<br>
</div>
<div class="padded centered">
<input type="submit" class="button"
value="$msg.get("create")"/>
</div>
</form>
#panelfooter()
#end
2. Setting the parent page in the editor
-now shows a dropdown list with all the pages in the current space, which
is much easier than remembering the exact documentname
In: Panels.DocumentInformation
Replaced:
<dd><input type="text" id="xwikidocparentinput2"
name="parent"
value="$!tdoc.parent" size="30"/></dd>
By:
<dd><select name="parent" class="panelselect">
<option value="$!tdoc.parent"
selected="selected">$!tdoc.parent</option>
<option value="">-Empty \*-</option>
#foreach($subdoc in $xwiki.getSpaceDocsName("$doc.web"))
#if($subdoc!="WebPreferences")
<option value="$subdoc">$subdoc</option>
#end
#end
</select></dd>
3. Default language chooser
-in a mulitlingual XWiki: in the editor a dropdown box is shown with the
languages set in the XWiki preferences to choose from, but only those that
are not avaiable as a translation, otherwise you'll end up with two
translations of the same name.
In: Panels.DocumentInformation
Original:
#if(($tdoc.language=="")&&($xwiki.isMultiLingual()))
<dt><label
for="xwikidoclanguageinput2">$msg.get("panels.documentInformation.defaultLanguage")</label></dt>
<dd><input type="text" id="xwikidoclanguageinput2"
name="defaultLanguage"
value="$!tdoc.defaultLanguage" size="30"/></dd>
#end
Becomes:
#if(($tdoc.language=="")&&($xwiki.isMultiLingual()))
<dt><label
for="xwikidoclanguageinput2">$msg.get("panels.documentInformation.defaultLanguage")</label></dt>
<dd><select name="defaultLanguage" class="panelselect">
<option value="$!tdoc.defaultLanguage"
id="xwikidoclanguageinput2"
selected="selected">$!tdoc.defaultLanguage</option>
#foreach($olang in $xwiki.getXWikiPreference("languages").split("[|,
]"))
#set($showlang=true)
#foreach($tlang in $doc.translationList)
#if($olang==$tlang)
#set($showlang=false)
#end
#end
#if($tdoc.defaultLanguage!=$olang&&$showlang!=false)
<option value="$!olang">$olang</option>
#end
#end
</select></dd>
#end
Hope this is helpful for others too!
And, if this is not the appropriate place to send this info to, just let me
know.
It's the best place to speak about that but it would be even better to also
put this in
http://code.xwiki.org for other peoples to easily find it with
other code snippets and applications.
Wouter
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
--
Thomas Mortagne