CCWidgetSetup
Task
You want to provide different preconfigured widgets for certain contexts
Solution
Let's say, we want to configure two widget sets, according to certain brands. We'll call them "Groupware4You", "CollaborationPro" and "OneStopShop".
There is a config cascade enabled property (com.openexchange.frontend.uwa.widgetFile) that governs which widget definition file is used.
Firstly we'll tag the contexts. This will assign the contexts to a certain brand.
Groupware4You Contexts
changecontext -c1 ... --taxonomy/types=gw4u changecontext -c2 ... --taxonomy/types=gw4u
CollaborationPro Contexts
changecontext -c3 ... --taxonomy/types=cpro changecontext -c4 ... --taxonomy/types=cpro
OneStopShop Contexts
changecontext -c5 ... --taxonomy/types=oss changecontext -c6 ... --taxonomy/types=oss
Next, we create the default widget settings in the file /opt/open-xchange/etc/groupware/uwa.properties com.openexchange.frontend.uwa.widgetFile=g4you_widgets
And the corresponging widget definition file /opt/open-xchange/etc/groupware/widgets/g4you_widgets.yml:
ads: autorefresh: true parameter: "{customerType: 'free'}" standalone: true url: http://www.groupware4you.com/widgets/Ads visible: true title:Offerings from Groupware 4 You
newAndNoteworthy: autorefresh: false parameter: "{customerType: 'free', includeUpsell: 'true'}" standalone: true url: http://www.groupware4you.com/platformNews visible: true title: New and Noteworthy
Next, let's define the two other brands. If a context belongs to a certain brand, other widget files will be used.
Create a file /opt/open-xchange/etc/groupware/contextSets/widgetSets.yml.
cpro: withTags: cpro com.openexchange.frontend.uwa.widgetFile: cpro_widgets oss: withTags: oss com.openexchange.frontend.uwa.widgetFile: oss_widgets
And the corresponding widget files, referred to by the configuration above.
/opt/open-xchange/etc/groupware/widgets/cpro_widgets.yml:
newAndNoteworthy: autorefresh: false parameter: "{customerType: 'free', includeUpsell: 'true'}" standalone: true url: http://www.collaborationpro.com/platformNews visible: true title: Collaboration Pro, New And Noteworthy
/opt/open-xchange/etc/groupware/widgets/oss_widgets.yml:
newAndNoteworthy: autorefresh: false parameter: "{customerType: 'free', includeUpsell: 'true'}" standalone: true url: http://www.onestopshop.com/platformNews visible: true title: The One Stop Shop News
This will make the widget files vary along the config cascade.