Index: wiki/src/main/resources/ColorThemes/ColorThemeSheet.xml =================================================================== --- wiki/src/main/resources/ColorThemes/ColorThemeSheet.xml (revision 25584) +++ wiki/src/main/resources/ColorThemes/ColorThemeSheet.xml (working copy) @@ -1,5 +1,4 @@ - ColorThemes ColorThemeSheet @@ -12,9 +11,9 @@ XWiki.Admin 1251108485000 -1251108485000 -1251108485000 -1.1 +1259961077000 +1259961077000 +3.1 @@ -116,7 +115,7 @@ Prepare the form for Procolor extension -0 +1 onDemand @@ -256,81 +255,334 @@ onDemand + + +XWiki.TagClass + + + + + + + + +0 +checkbox +1 +tags +1 +Tags +1 + + ,| +30 +0 + +com.xpn.xwiki.objects.classes.StaticListClass + + +ColorThemes.ColorThemeSheet +0 +XWiki.TagClass +e0492f3a-e131-4737-9773-fbc311f2d868 + + + + + + +XWiki.WikiMacroClass + + + + + + + + +code +8 +Macro code +20 +40 +0 +com.xpn.xwiki.objects.classes.TextAreaClass + + +contentDescription +7 +Content description (Not applicable for "No content" type) +5 +40 +0 +com.xpn.xwiki.objects.classes.TextAreaClass + + +0 +select +0 +contentType +6 +Macro content type +0 +| +| +1 +0 +Mandatory|Optional|No content +com.xpn.xwiki.objects.classes.StaticListClass + + +defaultCategory +4 +Default category +30 +0 +com.xpn.xwiki.objects.classes.StringClass + + +description +3 +Macro description +5 +40 +0 +com.xpn.xwiki.objects.classes.TextAreaClass + + +id +1 +Macro id +30 +0 +com.xpn.xwiki.objects.classes.StringClass + + +name +2 +Macro name +30 +0 +com.xpn.xwiki.objects.classes.StringClass + + +select +yesno +supportsInlineMode +5 +Supports inline mode +0 +com.xpn.xwiki.objects.classes.BooleanClass + + +ColorThemes.ColorThemeSheet +0 +XWiki.WikiMacroClass +be271d4f-da8a-48e2-8c15-13dbe1dfed92 + +{{velocity}} + {{html wiki=true clean=false}} + #set($title = $xcontext.macro.params.CategoryTitle) + #set($propertiesString = $xcontext.macro.params.CategoryProperties) + #set($propertiesList = $propertiesString.split(",")) + <fieldset class='color-theme-category'> + <legend>$title</legend> + <dl> + #foreach($propName in $propertiesList) + #if($propName == "title") + <dt>$msg.get("xe.themes.create.themetitle")</dt> + <dd> + <input type="text" id="title" name="title" size="30" /> + </dd> + #else + <dt>$themeDoc.displayPrettyName($propName.trim())</dt> + <dd> + #if ($context.action == 'inline' || $doc.fullName == "ColorThemes.CreateTheme") + $themeDoc.display($propName.trim(), "edit") + #else + <span class="color" style="background-color: $obj.getProperty($propName.trim()).value"> + $themeDoc.display($obj.getProperty($propName.trim()).getName()) + </span> + #end + </dd> + #end + #end + </dl> + </fieldset> + {{/html}} +{{/velocity}} + + + + + +Optional + + + + + +Display a list of theme properties + + +displayThemeCategory + + +Display Theme Category + + +1 + + + + +XWiki.WikiMacroParameterClass + + + + + + + + +description +2 +Parameter description +5 +40 +0 +com.xpn.xwiki.objects.classes.TextAreaClass + + +select +yesno +mandatory +3 +Parameter mandatory +0 +com.xpn.xwiki.objects.classes.BooleanClass + + +name +1 +Parameter name +30 +0 +com.xpn.xwiki.objects.classes.StringClass + + +ColorThemes.ColorThemeSheet +0 +XWiki.WikiMacroParameterClass +3bf52f48-66a1-49b8-b012-be79b072b903 + +The title of a ColorTheme category + + +1 + + +CategoryTitle + + + + +XWiki.WikiMacroParameterClass + + + + + + + + +description +2 +Parameter description +5 +40 +0 +com.xpn.xwiki.objects.classes.TextAreaClass + + +select +yesno +mandatory +3 +Parameter mandatory +0 +com.xpn.xwiki.objects.classes.BooleanClass + + +name +1 +Parameter name +30 +0 +com.xpn.xwiki.objects.classes.StringClass + + +ColorThemes.ColorThemeSheet +1 +XWiki.WikiMacroParameterClass +1aea2e6a-332f-421f-833e-616538c2f24c + +A list of properties of type ColorThemes.ColorThemeClass class + + +1 + + +CategoryProperties + + {{velocity}} {{html clean="false" wiki="true"}} ## $xwiki.jsx.use('ColorThemes.ColorThemeSheet')## $xwiki.ssx.use('ColorThemes.ColorThemeSheet')## $xwiki.jsfx.use('uicomponents/widgets/colorpicker/procolor.js', true)## -#set($obj = $doc.getObject('ColorThemes.ColorThemeClass')) -## -#macro(displayThemeCategory $title $properties) - <fieldset class='color-theme-category'> - <legend>$title</legend> - <dl> - #foreach($propName in $properties) - <dt>$doc.displayPrettyName($propName)</dt> - <dd>#if ($context.action != 'inline')<span class="color" style="background-color: $obj.getProperty($propName).value">#end$doc.display($obj.getProperty($propName).getName())#if ($context.action != 'inline')</span>#end</dd> - #end - </dl> - </fieldset> -#end -## -<div style="width: 48%; float: left;"> -#displayThemeCategory( - 'General', - [ - 'pageBackgroundColor', - 'pageBackgroundImage', - 'pageBackgroundPosition', - 'pageHeaderBackgroundColor', - 'headerBackgroundImage', - 'headerBackgroundPosition', - 'pageContentBackgroundColor', - 'textColor', - 'textPrimaryColor', - 'textSecondaryColor', - 'linkColor', - 'titleColor' - ] -) -</div> -<div style="width: 48%; margin-left: 50%"> -#displayThemeCategory( - 'Menu', - [ - 'menuBackgroundColor', - 'menuLinkColor', - 'menuSelectedEntryBackgroundColor', - 'menuSelectedEntryLinkColor' - ] -) - -#displayThemeCategory( - 'Panels', - [ - 'panelBackgroundColor', - 'panelTextColor', - 'panelHeaderBackgroundColor', - 'panelHeaderTextColor', - 'panelCollapsedBackgroundColor', - 'panelCollapsedTextColor' - ] -) - -#displayThemeCategory( - 'Other', - [ - 'borderColor', - 'backgroundSecondaryColor', - 'highlightColor', - 'buttonPrimaryTextColor', - 'buttonPrimaryBackgroundColor', - 'buttonSecondaryTextColor', - 'buttonSecondaryBackgroundColor' - ] -) -</div> +#set($themeDoc = $doc) +#set($obj = $themeDoc.getObject('ColorThemes.ColorThemeClass')) + <div style="width: 48%; float: left;"> + {{displayThemeCategory CategoryTitle=$msg.get("xe.themes.category.General") CategoryProperties=" + pageBackgroundColor, + pageHeaderBackgroundColor, + pageContentBackgroundColor, + textColor, + textPrimaryColor, + textSecondaryColor, + linkColor, + titleColor + " /}} + {{displayThemeCategory CategoryTitle=$msg.get("xe.themes.category.Other") CategoryProperties=" + borderColor, + backgroundSecondaryColor, + highlightColor + " /}} + </div> + <div style="width: 48%; margin-left: 50%"> + {{displayThemeCategory CategoryTitle=$msg.get("xe.themes.category.Menu") CategoryProperties=" + menuBackgroundColor, + menuLinkColor, + menuSelectedEntryBackgroundColor, + menuSelectedEntryLinkColor + " /}} + {{displayThemeCategory CategoryTitle=$msg.get("xe.themes.category.Panels") CategoryProperties=" + panelBackgroundColor, + panelTextColor, + panelHeaderBackgroundColor, + panelHeaderTextColor, + panelCollapsedBackgroundColor, + panelCollapsedTextColor + " /}} + {{displayThemeCategory CategoryTitle=$msg.get("xe.themes.category.Buttons") CategoryProperties=" + buttonPrimaryTextColor, + buttonPrimaryBackgroundColor, + buttonSecondaryTextColor, + buttonSecondaryBackgroundColor + " /}} + </div> <div class="clearfloats"></div> {{/html}} {{/velocity}} Index: wiki/src/main/resources/ColorThemes/CreateTheme.xml =================================================================== --- wiki/src/main/resources/ColorThemes/CreateTheme.xml (revision 0) +++ wiki/src/main/resources/ColorThemes/CreateTheme.xml (revision 0) @@ -0,0 +1,137 @@ + + + +ColorThemes +CreateTheme + +en +0 + +XWiki.Admin +XWiki.Admin + +XWiki.Admin +1259859259000 +1259963282000 +1259963282000 +1.3 + + + + +deny view right for XWiki.XWikiGuest +true +xwiki/2.0 +false + + +XWiki.TagClass + + + + + + + + +0 +checkbox +1 +tags +1 +Tags +1 + + ,| +30 +0 + +com.xpn.xwiki.objects.classes.StaticListClass + + +ColorThemes.CreateTheme +0 +XWiki.TagClass +b7848455-78a5-486d-ba6a-a8f6b0c1cc37 + + + + + + +XWiki.XWikiRights + + + + + + + + +1 +select +allow +allow +4 +Allow/Deny +0 +com.xpn.xwiki.objects.classes.BooleanClass + + +0 +select +1 +groups +1 +Groups +0 + +5 +0 +1 +com.xpn.xwiki.objects.classes.GroupsClass + + +0 +select +1 +levels +2 +Levels +0 + +3 +0 +com.xpn.xwiki.objects.classes.LevelsClass + + +0 +select +1 +users +3 +Users +0 + +5 +0 +1 +com.xpn.xwiki.objects.classes.UsersClass + + +ColorThemes.CreateTheme +1 +XWiki.XWikiRights +655c1e40-ee2f-4a6f-92e8-184c7ffd8dc1 + +0 + + +view + + +XWiki.XWikiGuest + + +{{include document="ColorThemes.CreateThemeSheet"/}} + Index: wiki/src/main/resources/ColorThemes/CreateThemeSheet.xml =================================================================== --- wiki/src/main/resources/ColorThemes/CreateThemeSheet.xml (revision 0) +++ wiki/src/main/resources/ColorThemes/CreateThemeSheet.xml (revision 0) @@ -0,0 +1,292 @@ + + + +ColorThemes +CreateThemeSheet + +en +0 + +XWiki.Admin +XWiki.Admin + +XWiki.Admin +1259859282000 +1259922797000 +1259922797000 +20.1 + + + + + +false +xwiki/2.0 +false + + +XWiki.JavaScriptExtension + + + + + + + + +0 +select +0 +cache +5 +Caching policy +0 + + ,| +1 +0 +long|short|default|forbid +com.xpn.xwiki.objects.classes.StaticListClass + + +code +2 +Code +20 +50 +0 +com.xpn.xwiki.objects.classes.TextAreaClass + + +name +1 +Name +30 +0 +com.xpn.xwiki.objects.classes.StringClass + + +select +yesno +parse +4 +Parse content +0 +com.xpn.xwiki.objects.classes.BooleanClass + + +0 +select +0 +use +3 +Use this extension +0 + + ,| +1 +0 +onDemand=On demand|always=Always +com.xpn.xwiki.objects.classes.StaticListClass + + +ColorThemes.CreateThemeSheet +1 +XWiki.JavaScriptExtension +58715afa-b60b-4695-9ef9-9ced7f4ab966 + +long + + +// Make sure the XWiki 'namespace' exists. +if (typeof(XWiki) == 'undefined') { + XWiki = new Object(); +} +// Make sure the colorThemes 'namespace' exists. +if (typeof(XWiki.colorThemes) == 'undefined') { + XWiki.colorThemes= new Object(); +} +XWiki.colorThemes.CreateActions = Class.create({ + initialize : function() { + this.addListeners(); + }, + addListeners : function() { + $$('input[name=create-cancel]').each(function(item) { + item.observe('click', this.onCancel.bindAsEventListener(this)); + }.bind(this)); + $$('input[name=create-save]').each(function(item) { + item.observe('click', this.onSaveAndView.bindAsEventListener(this)); + }.bind(this)); + }, + onCancel : function(event) { + event.stop(); + window.location = '$xwiki.getURL("ColorThemes.WebHome")'; + }, + onSaveAndView : function(event) { + if(this.validateFields($('title'))){ + $('create-theme').submit(); + } + }, + validateFields : function(elem) { + var emptyTitleMsg = "$msg.get('xe.themes.create.empty.title')"; + if(elem.value.length == 0){ + if(!elem.next()){ + elem.up().appendChild(new Element('div', {'class' : 'theme-err'}).update(emptyTitleMsg)); + } + return false; + }else{ + if(elem.next()){ + elem.next().remove(); + } + return true; + } + } +}); +document.observe("dom:loaded", function() { + new XWiki.colorThemes.CreateActions(); +}); + + +Create Theme + + +1 + + +onDemand + + + + +XWiki.TagClass + + + + + + + + +0 +checkbox +1 +tags +1 +Tags +1 + + ,| +30 +0 + +com.xpn.xwiki.objects.classes.StaticListClass + + +ColorThemes.CreateThemeSheet +0 +XWiki.TagClass +11425b49-97e6-4e06-bc39-eb7fb4ba80c7 + + + + +{{velocity}} +$xwiki.jsx.use('ColorThemes.ColorThemeSheet')## +$xwiki.jsx.use('ColorThemes.CreateThemeSheet')## +$xwiki.ssx.use('ColorThemes.ColorThemeSheet')## +$xwiki.jsfx.use('uicomponents/widgets/colorpicker/procolor.js', true)## +#if($request.method == "POST") + #if("$!request.doc" != "") + #set($saveDoc = false) + #set($newTheme = $xwiki.getDocument($request.doc)) + #set($newThemeObj = $newTheme.getObject("ColorThemes.ColorThemeClass")) + #if("$!request.pageBackgroundImage" != "") + $newThemeObj.set("pageBackgroundImage", $request.pageBackgroundImage) + #set($saveDoc = true) + #end + #if("$!request.headerBackgroundImage" != "") + $newThemeObj.set("headerBackgroundImage", $request.headerBackgroundImage) + #if(!$saveDoc) #set($saveDoc = true) #end + #end + #if($saveDoc) + $newTheme.save() + #end + #else + #set($docTitle = $xwiki.getUniquePageName("ColorThemes", $request.title)) + #set($newTheme = $xwiki.getDocument("ColorThemes.${docTitle}")) + #set($ok = $newTheme.addObjectFromRequest("ColorThemes.ColorThemeClass")) + $newTheme.setContent("{{include document='ColorThemes.ColorThemeSheet'/}}") + $newTheme.setTitle($request.title) + $newTheme.save() + #if("$!request.attach" == "1") + $response.sendRedirect($newTheme.getURL("view","viewer=attachments")) + #else + $response.sendRedirect($newTheme.getURL()) + #end + #end +#else + #set($themeDoc = $xwiki.getDocument("ColorThemes.${xwiki.getUniquePageName('Temp')}")) + #set($themeObj = $themeDoc.newObject("ColorThemes.ColorThemeClass")) + $themeDoc.use("ColorThemes.ColorThemeClass") + ==$msg.get("xe.themes.create")== + {{html clean="false" wiki="true"}} + <form id="create-theme" action="$doc.getURL()" method="POST"> + <div style="width: 48%; float: left;"> + {{displayThemeCategory CategoryTitle=$msg.get("xe.themes.category.Title") CategoryProperties="title" /}} + {{displayThemeCategory CategoryTitle=$msg.get("xe.themes.category.General") CategoryProperties=" + pageBackgroundColor, + pageHeaderBackgroundColor, + pageContentBackgroundColor, + textColor, + textPrimaryColor, + textSecondaryColor, + linkColor, + titleColor + " /}} + {{displayThemeCategory CategoryTitle=$msg.get("xe.themes.category.Other") CategoryProperties=" + borderColor, + backgroundSecondaryColor, + highlightColor + " /}} + </div> + <div style="width: 48%; margin-left: 50%"> + {{displayThemeCategory CategoryTitle=$msg.get("xe.themes.category.Menu") CategoryProperties=" + menuBackgroundColor, + menuLinkColor, + menuSelectedEntryBackgroundColor, + menuSelectedEntryLinkColor + " /}} + {{displayThemeCategory CategoryTitle=$msg.get("xe.themes.category.Panels") CategoryProperties=" + panelBackgroundColor, + panelTextColor, + panelHeaderBackgroundColor, + panelHeaderTextColor, + panelCollapsedBackgroundColor, + panelCollapsedTextColor + " /}} + {{displayThemeCategory CategoryTitle=$msg.get("xe.themes.category.Buttons") CategoryProperties=" + buttonPrimaryTextColor, + buttonPrimaryBackgroundColor, + buttonSecondaryTextColor, + buttonSecondaryBackgroundColor + " /}} + </div> + <div class="bottombuttons"> + <div class="buttons"> + <span class="buttonwrapper"> + #set($cancelMsg = $msg.get("xe.themes.create.cancel")) + <input class="button cancel-button" type="button" value="$cancelMsg" title="$cancelMsg" name="create-cancel"/> + #set($submitMsg = $msg.get("xe.themes.create.submit")) + <input class="button" type="button" value="$submitMsg" title="$submitMsg" name="create-save"/> + </span> + </div> + </div> + </form> + {{/html}} +#end +#set($showcomments = "no") +#set($showattachments = "no") +#set($showhistory = "no") +#set($showinformation = "no") +{{/velocity}} + Index: wiki/src/main/resources/ColorThemes/WebHome.xml =================================================================== --- wiki/src/main/resources/ColorThemes/WebHome.xml (revision 25584) +++ wiki/src/main/resources/ColorThemes/WebHome.xml (working copy) @@ -12,9 +12,9 @@ XWiki.Admin 1251108485000 -1251108485000 -1251108485000 -1.1 +1259964146000 +1259964146000 +13.1 Color Themes @@ -23,9 +23,49 @@ false xwiki/2.0 false -= Existing Themes = + + +XWiki.TagClass + + + + + + + + +0 +checkbox +1 +tags +1 +Tags +1 + + ,| +30 +0 + +com.xpn.xwiki.objects.classes.StaticListClass + + +ColorThemes.WebHome +0 +XWiki.TagClass +c2391dc9-191a-460c-817b-5b224079a088 + + + + +{{velocity}} +#if(!$isGuest) + (% style="padding-left: 20px; font-size:130%; background-image: url( $xwiki.getSkinFile('icons/silk/add.gif') ); background-repeat: no-repeat; background-position: 0px 5px;" %) + **[[Create a new theme>>CreateTheme]]** + (%%) +#end -{{velocity}} += Existing Themes = + * [[Default theme>>DefaultColorTheme]] * Variants #set($query = ", BaseObject as theme where doc.fullName=theme.name and theme.className='ColorThemes.ColorThemeClass' and doc.fullName<>'ColorThemes.ColorThemeTemplate' and doc.fullName<>'ColorThemes.DefaultColorTheme' order by doc.title")##