<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Working with Widget Studio</title><link>https://community.telligent.com/community/11/w/developer-training/65088/working-with-widget-studio</link><description /><dc:language>en-US</dc:language><generator>14.0.0.586 14</generator><item><title>Working with Widget Studio</title><link>https://community.telligent.com/community/11/w/developer-training/65088/working-with-widget-studio</link><pubDate>Wed, 17 Feb 2021 17:54:55 GMT</pubDate><guid isPermaLink="false">666181cf-b84f-490b-a841-f56367207b3b</guid><dc:creator>Michael Kelley</dc:creator><comments>https://community.telligent.com/community/11/w/developer-training/65088/working-with-widget-studio#comments</comments><description>Current Revision posted to Developer Training by Michael Kelley on 02/17/2021 17:54:55&lt;br /&gt;
&lt;p&gt;Widget Studio is an interface in the Administration UI which provides complete management and authorship of [[Widgets|widgets]] directly within Verint Community. It is available by navigating to &lt;strong&gt;Administration &amp;gt; Interface &amp;gt; Widgets&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;[toc]&lt;/p&gt;
&lt;h2 id="mcetoc_1euohuol80"&gt;&lt;a id="When_would_I_use_Widget_Studio" name="When_would_I_use_Widget_Studio"&gt;&lt;/a&gt;When would I use Widget Studio?&lt;/h2&gt;
&lt;p&gt;Widget Studio is used for both widget management and widget authoring. Example uses include:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Widget management&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browsing widgets&lt;/li&gt;
&lt;li&gt;Importing widgets&lt;/li&gt;
&lt;li&gt;Exporting widgets&lt;/li&gt;
&lt;li&gt;Reviewing and publishing widget changes&lt;/li&gt;
&lt;li&gt;Importing and exporting of widget language resources&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Widget authoring&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Editing existing widgets&lt;/li&gt;
&lt;li&gt;Creating new widgets&lt;/li&gt;
&lt;li&gt;Comparing and live-previewing widget changes&lt;/li&gt;
&lt;li&gt;Reverting changed widgets&lt;/li&gt;
&lt;li&gt;Reviewing widget API documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1euohuol81"&gt;&lt;a id="The_Interface" name="The_Interface"&gt;&lt;/a&gt;The Interface&lt;/h2&gt;
&lt;p&gt;It is helpful to understand the major components of the new Widget Studio interface before diving into management and authoring details.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/studio.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/studio.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol82"&gt;&lt;a id="Browse_View" name="Browse_View"&gt;&lt;/a&gt;Browse View&lt;/h3&gt;
&lt;p&gt;The browse view on the left supports viewing the set of installed widgets.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Tree" name="Tree"&gt;&lt;/a&gt;Tree&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png"&gt;&lt;img style="border:1px solid #DDD;width:471px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The tree lists both widgets as well as their [[Widgets|components]] such as content script, resources, and attachments. Widget nodes identify the widgets&amp;#39; [[Widgets|version and staging states]], including whether the widget is a customized default, fully custom, or themed. If the widget has staged changes, a yellow pencil indicator is shown.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Filtering" name="Filtering"&gt;&lt;/a&gt;Filtering&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/1121.png"&gt;&lt;img style="border:1px solid #DDD;width:250px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/1121.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Widgets can be filtered by&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Widget Type:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;All&lt;/strong&gt;: All Widgets, excluding those provided by scripted plugins&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User Installed&lt;/strong&gt;: Widgets created or imported via Widget Studio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Default&lt;/strong&gt;: [[Widgets|Factory default widgets]] provided by the platform or [[Factory Default Widget Providers|third-party plugins]]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Edited Default&lt;/strong&gt;: Factory default widgets which have been customized with overrides in Widget Studio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Provider: Provider Name&lt;/strong&gt;: Widgets provided by specific [[Factory Default Widget Providers|factory default providers]], including scripted plugins.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Theme:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;any&lt;/strong&gt;: any theme version&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Theme Name&lt;/strong&gt;: widgets that have a [[Widgets|themed version]] specifically for the theme name selected&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Text search:
&lt;ul&gt;
&lt;li&gt;Text that matches the widget&amp;#39;s name, description, or attachment name&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a id="Browse_Actions" name="Browse_Actions"&gt;&lt;/a&gt;Browse Actions&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6366.png"&gt;&lt;img style="border:1px solid #DDD;width:374px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6366.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Browse actions are available above the tree&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New&lt;/strong&gt;: Create a new widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Import&lt;/strong&gt;: Upload widgets or widget resources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-Select&lt;/strong&gt;: Toggle multi-selection of multiple widgets for export&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API Documentation&lt;/strong&gt;: View API Documentation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Settings&lt;/strong&gt;: Widget Studio settings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export All Widgets&lt;/strong&gt;: Exports all widgets that are available to view&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export All Resources&lt;/strong&gt;: Exports all resources, even from any widgets which aren&amp;#39;t available to view or edit&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a id="Widget_Actions" name="Widget_Actions"&gt;&lt;/a&gt;Widget Actions&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png"&gt;&lt;img style="border:1px solid #DDD;width:471px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Widget actions are available alongside each widget node in the tree. These same actions are also available in widgets&amp;#39; edit views. The exact set of widget actions can very based on the state of the widget, and update automatically in response to widget state changes. Details about these actions are available within the &lt;strong&gt;Management&lt;/strong&gt; and &lt;strong&gt;Authoring&lt;/strong&gt; sections below&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Preview&lt;/strong&gt;: Live-preview the widget in the user interface&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Publish Staged Changes&lt;/strong&gt;: Publishes staged changes, if any exist&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Revert Staged Changes&lt;/strong&gt;: Reverts staged changes, if any exist&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add File&lt;/strong&gt;: Adds a new editable attachment to the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upload Attachment&lt;/strong&gt;: Uploads a new attachment of any type to the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Save as Copy&lt;/strong&gt;: Creates a new widget as a copy&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Save for Theme&lt;/strong&gt;: Creates a themed version of the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export Widget&lt;/strong&gt;: Exports the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export Resources&lt;/strong&gt;: Exports the widget&amp;#39;s language resources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delete or Revert&lt;/strong&gt;: Deletes a custom widget or reverts a customized default to a factory default&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a id="Multi-selection" name="Multi-selection"&gt;&lt;/a&gt;Multi-selection&lt;/h4&gt;
&lt;p&gt;Multi-selection enables selecting multiple widgets for widget or resource export. Multi-selection is not as inclusive as the &lt;strong&gt;Export All Widgets&lt;/strong&gt; or &lt;strong&gt;Export All Resources&lt;/strong&gt; options, as some widgets may not be available for viewing or editing though their resources are still editable.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png"&gt;&lt;img style="border:1px solid #DDD;width:250px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol83"&gt;&lt;a id="Staging_View" name="Staging_View"&gt;&lt;/a&gt;Staging View&lt;/h3&gt;
&lt;p&gt;When one or more widgets is staged, the staging view is shown.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png"&gt;&lt;img style="border:1px solid #DDD;width:468px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When a widget is edited, (including everything from content script changes to just importing resource translations) the changes are staged. Staged changes are only visible to the user performing the change.&lt;/p&gt;
&lt;p&gt;Staged widgets can be published or reverted back to their non-staged state. Staged changes can also be viewed n the site with live updates as widgets change, only for the user making the change.&lt;/p&gt;
&lt;p&gt;The staging view lists all currently-staged widgets, along with actions to preview and publish or revert single widgets or all of them at once.&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol84"&gt;&lt;a id="Tab_View" name="Tab_View"&gt;&lt;/a&gt;Tab View&lt;/h3&gt;
&lt;p&gt;Widget Studio supports viewing and editing multiple components from multiple widgets simultaneously. Each component is opened on its own tab, which the tab view navigates.&lt;/p&gt;
&lt;p&gt;Each tab lists the name of the widget, the component, its yellow staged state (if staged), with links to close the tab, close all other tabs, or reveal the staged component within the tree (if not already focused) for greater context.&lt;/p&gt;
&lt;p&gt;Tabs can be re-ordered via drag and drop, and tabs overflow into a dropdown revealing less used tabs.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6253.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6253.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol85"&gt;&lt;a id="Editor_View" name="Editor_View"&gt;&lt;/a&gt;Editor View&lt;/h3&gt;
&lt;p&gt;The editor view area displays multiple types of editing experiences, depending on the component. Editor views could include [[Using Velocity in Widgets|Velocity script]], [[Supporting Configuration|Velocity script]], language resources, attachments, and more.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7610.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/7610.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Component_Navigation_and_Actions" name="Component_Navigation_and_Actions"&gt;&lt;/a&gt;Component Navigation and Actions&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/editor_2D00_header.png"&gt;&lt;img style="border:1px solid #DDD;width:458px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/editor_2D00_header.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Each editor view identifies the widget&amp;#39;s &lt;strong&gt;theme&lt;/strong&gt; (if it has one), its &lt;strong&gt;name&lt;/strong&gt;, the &lt;strong&gt;component&lt;/strong&gt; being edited with links to all other components in the widget, and widget actions. Widget actions are the same as those available from the &lt;strong&gt;Browse View&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/2350.png"&gt;&lt;img style="border:1px solid #DDD;width:368px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/2350.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Diffing" name="Diffing"&gt;&lt;/a&gt;Diffing&lt;/h4&gt;
&lt;p&gt;If a widget is staged, it is identified as such with a button to &lt;strong&gt;Compare Changes&lt;/strong&gt; with the current published version. If the widget is a customized default, another button is shown to &lt;strong&gt;Compare Changes&lt;/strong&gt; with the default.&lt;/p&gt;
&lt;p&gt;Selecting either &lt;strong&gt;Compare Changes&lt;/strong&gt; button will switch the editor view to comparison mode where the left side is the original and the right side is the edited version. For most editor views types, comparison view still allows editing while in comparison view.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When using the &lt;strong&gt;Compare Changes&lt;/strong&gt; tool on a Widget&amp;#39;s Overview, all components that have changes are highlighted in yellow.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Full_Screen_Editing" name="Full_Screen_Editing"&gt;&lt;/a&gt;Full Screen Editing&lt;/h4&gt;
&lt;p&gt;Most editor view types support being edited in full screen. Select &lt;strong&gt;Full Screen&lt;/strong&gt; to toggle.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6443.png"&gt;&lt;img style="border:1px solid #DDD;width:80px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6443.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6114.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6114.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1euohuol86"&gt;&lt;a id="Managing_Widgets" name="Managing_Widgets"&gt;&lt;/a&gt;Managing Widgets&lt;/h2&gt;
&lt;h3 id="mcetoc_1euohuol87"&gt;&lt;a id="Browsing_Widgets" name="Browsing_Widgets"&gt;&lt;/a&gt;Browsing Widgets&lt;/h3&gt;
&lt;h3 id="mcetoc_1euohuol88"&gt;&lt;a id="Importing_Widgets" name="Importing_Widgets"&gt;&lt;/a&gt;Importing Widgets&lt;/h3&gt;
&lt;p&gt;Widgets can be installed from widget export files by selecting the &lt;strong&gt;Import&lt;/strong&gt; button in the &lt;strong&gt;Browse View&lt;/strong&gt;. A single widget export file can be selected (which can potentially contain multiple widgets). A confirmation will be shown before import like the following. Note that widgets that are either new or updated are identified as such with the option to not import them.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/1351.png"&gt;&lt;img style="border:1px solid #DDD;width:519px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/1351.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Imported widgets are imported to a staged, non-published, state&lt;/strong&gt;, the same as if the widgets had been edited directly within Widget Studio. This allows for further review of changes and differences using the &lt;strong&gt;Compare&lt;/strong&gt; tools in editor views prior to eventually selecting &lt;strong&gt;publish&lt;/strong&gt; or &lt;strong&gt;revert&lt;/strong&gt;. Thanks to staging, importing is a safe action which does not affect the published user interface, and can be fully reverted instead of published.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png"&gt;&lt;img style="border:1px solid #DDD;width:470px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once published, imported widget updates install either as custom defaults (if there was a default version) or as a new version of the existing custom widget, overwriting the previous.&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol89"&gt;&lt;a id="Exporting_Widgets" name="Exporting_Widgets"&gt;&lt;/a&gt;Exporting Widgets&lt;/h3&gt;
&lt;p&gt;Any widget, whether &lt;strong&gt;Factory Default&lt;/strong&gt; or &lt;strong&gt;Custom&lt;/strong&gt;, can be exported. A widget export includes widgets&amp;#39; script, configuration, attachments, and resources. A single export file can contain multiple widgets.&lt;/p&gt;
&lt;p&gt;To produce a widget export select Export Widget from a widget&amp;#39;s actions in the Tree View or any of the widget&amp;#39;s components&amp;#39; edit views. Alternatively, multiple widgets can be exported in a single file by entering multi-select mode in the Browse View, checking widget checkboxes, and then selecting &lt;em&gt;Export Selected Widgets&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png"&gt;&lt;img style="border:1px solid #DDD;width:250px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol8a"&gt;&lt;a id="Publishing_or_Reverting_Staged_Changes" name="Publishing_or_Reverting_Staged_Changes"&gt;&lt;/a&gt;Publishing or Reverting Staged Changes&lt;/h3&gt;
&lt;p&gt;Staged changes can be published or reverted using &lt;strong&gt;Widget Actions&lt;/strong&gt; in the Browse View, editor view, or in the &lt;strong&gt;Staging View&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png"&gt;&lt;img style="border:1px solid #DDD;width:470px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol8b"&gt;&lt;a id="Deleting_or_Reverting_changes_to_Widgets" name="Deleting_or_Reverting_changes_to_Widgets"&gt;&lt;/a&gt;Deleting or Reverting changes to Widgets&lt;/h3&gt;
&lt;p&gt;Custom widgets can be fully deleted. Factory defaults cannot be deleted, but customized versions of factory defaults can be reverted back to their original.&lt;/p&gt;
&lt;p&gt;To delete or revert a widget (depending on its type), select &lt;strong&gt;Delete&lt;/strong&gt; or &lt;strong&gt;Revert&lt;/strong&gt; from &lt;strong&gt;Widget Actions&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol8c"&gt;&lt;a id="Importing_and_exporting_Language_Resources" name="Importing_and_exporting_Language_Resources"&gt;&lt;/a&gt;Importing and exporting Language Resources&lt;/h3&gt;
&lt;p&gt;Widget exports include all language resources used by those widgets. Widget Studio also supports exporting and importing only the language resources for widgets.&lt;/p&gt;
&lt;p&gt;To export a widget language resources, select &lt;strong&gt;Export Resources&lt;/strong&gt; from &lt;strong&gt;Widget Actions&lt;/strong&gt;. Alternatively, multi-select mode can be used export multiple widgets&amp;#39; resources.&lt;/p&gt;
&lt;p&gt;To translate all widget-based user interfaces in the Community, use &lt;strong&gt;Export All Resources&lt;/strong&gt;, as some widgets may not be available for viewing, editing, or multi-selection.&lt;/p&gt;
&lt;h2 id="mcetoc_1euohuol8d"&gt;&lt;a id="Authoring_Widgets" name="Authoring_Widgets"&gt;&lt;/a&gt;Authoring Widgets&lt;/h2&gt;
&lt;h3 id="mcetoc_1euohuol8e"&gt;&lt;a id="Editing_Widgets" name="Editing_Widgets"&gt;&lt;/a&gt;Editing Widgets&lt;/h3&gt;
&lt;h4&gt;&lt;a id="Editing_and_Saving" name="Editing_and_Saving"&gt;&lt;/a&gt;Editing and Saving&lt;/h4&gt;
&lt;p&gt;To edit a widget, navigate to one of its components in the tree view. All changes are automatically saved to staging. Staged widgets can be used and configured on the site by the developer, but are not publicly available until publishing.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Comparing_Changes" name="Comparing_Changes"&gt;&lt;/a&gt;Comparing Changes&lt;/h4&gt;
&lt;p&gt;As widgets are edited, staged changes can be compared with the non-staged by selecting &lt;strong&gt;Compare Changes&lt;/strong&gt;. For most widget component views, edits can continue to be made while in comparison view.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Previewing_Changes" name="Previewing_Changes"&gt;&lt;/a&gt;Previewing Changes&lt;/h4&gt;
&lt;p&gt;Widgets can be previewed by selecting &lt;strong&gt;Preview&lt;/strong&gt; in &lt;strong&gt;Widget Actions&lt;/strong&gt;. If the widget is currently in use, a new browser window will be opened to a page using the widget, pre-loaded to &lt;strong&gt;Preview&lt;/strong&gt; mode. Preview mode renders the widget&amp;#39;s staged version, automatically refreshing the host page as widget changes continue to be saved.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Publishing_or_Reverting_Staged_Changes" name="Publishing_or_Reverting_Staged_Changes"&gt;&lt;/a&gt;Publishing or Reverting Staged Changes&lt;/h4&gt;
&lt;p&gt;Staged changes can be published or reverted using &lt;strong&gt;Widget Actions&lt;/strong&gt; in the Browse View, editor view, or in the &lt;strong&gt;Staging View&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png"&gt;&lt;img style="border:1px solid #DDD;width:468px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol8f"&gt;&lt;a id="Creating_new_Widgets" name="Creating_new_Widgets"&gt;&lt;/a&gt;Creating new Widgets&lt;/h3&gt;
&lt;h4&gt;&lt;a id="Creating_a_new_Widget" name="Creating_a_new_Widget"&gt;&lt;/a&gt;Creating a new Widget&lt;/h4&gt;
&lt;p&gt;To create a new Widget, select &lt;strong&gt;New Widget&lt;/strong&gt; in the Browse View. While widget changes are automatically saved, new widgets are not created until at least one field is edited. If not provided, widget names are automatically provided. As with all edits, new widgets are saved into staging. Staged widgets can be used and configured on the site by the developer, but are not publicly available until publishing.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Branching_a_widget_to_a_theme-specific_version" name="Branching_a_widget_to_a_theme-specific_version"&gt;&lt;/a&gt;Branching a widget to a theme-specific version&lt;/h4&gt;
&lt;p&gt;By default, a given Widget functions identically in any theme. A theme-specific Widget is only used when that theme is selected. A theme-specific widget defines its own complete set of content, configuration, attachments, and resources and can potentially vary significantly in implementation from its base.&lt;/p&gt;
&lt;p&gt;To create a theme-specific version, select &lt;strong&gt;Save for Theme&lt;/strong&gt; in &lt;strong&gt;Widget Actions&lt;/strong&gt;. Widget Studio will prompt for which theme to save against before staging a themed variant.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Branching_a_widget_to_a_new_separate_widget" name="Branching_a_widget_to_a_new_separate_widget"&gt;&lt;/a&gt;Branching a widget to a new, separate, widget&lt;/h4&gt;
&lt;p&gt;To save a copy of a widget as a new, separate, widget that does not overwrite the original, select &lt;strong&gt;Save as Copy&lt;/strong&gt; from &lt;strong&gt;Widget Actions&lt;/strong&gt;. The new widget will be staged with a copy of the source widget&amp;#39;s content, configuration, attachments, and resources and will not affect existing usages of the source widget.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Deleting_or_Reverting_a_widget" name="Deleting_or_Reverting_a_widget"&gt;&lt;/a&gt;Deleting or Reverting a widget&lt;/h4&gt;
&lt;p&gt;A widget which was imported or created via the Widget Studio can be deleted, but not reverted. A Factory Default widget can be neither deleted nor reverted. However, a customized version of a factory default (a factory default which has been &amp;quot;saved&amp;quot; against through Widget Studio) can be reverted back to its original Factory Default state. The type of widget being viewed determines whether a &lt;strong&gt;Delete&lt;/strong&gt; or &lt;strong&gt;Revert&lt;/strong&gt; button is presented.&lt;/p&gt;
&lt;h2 id="mcetoc_1euohuol8g"&gt;&lt;a id="Widget_Components_Definitions" name="Widget_Components_Definitions"&gt;&lt;/a&gt;Widget Components Definitions&lt;/h2&gt;
&lt;h3 id="mcetoc_1euohuol8h"&gt;&lt;a id="Overview" name="Overview"&gt;&lt;/a&gt;Overview&lt;/h3&gt;
&lt;p&gt;Both &lt;strong&gt;Name&lt;/strong&gt; and &lt;strong&gt;Description&lt;/strong&gt; support resource tokens to allow for localized names. So, if a widget is titled &amp;quot;Hello World&amp;quot;, &amp;quot;Hello World&amp;quot; can optionally be defined as a resource named &lt;code&gt;title_hello_world&lt;/code&gt; and the &amp;#39;Name&amp;#39; field for the widget can contain &lt;code&gt;${resource:title_hello_world}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Show Header by Default&lt;/strong&gt; defines whether the header of a widget is shown by default. The selected wrapping format when placing a widget can override this choice.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is Cacheable&lt;/strong&gt; defines whether a widget&amp;#39;s output should be cached by the site. This should be enabled whenever possible, which includes when a widget is not Accessing-user-specific, or is user-specific but can be cached per user.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vary Cache by User&lt;/strong&gt; defines whether a cached widget should use the same output for every accessing user or a separate cached copy for each. A widget whose content is specific to the accessing user should vary cache by the user.&lt;/p&gt;
&lt;p&gt;To allow for easier styling of a widget from a theme, a widget can define its own unique &lt;strong&gt;CSS class&lt;/strong&gt; which is applied to its wrapping div element. CSS selectors can then be targeted to specific descendants of the class as follows&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.content-fragment.social-share h2 { color: red; }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Without defined &lt;strong&gt;available contexts&lt;/strong&gt;, a widget can be placed in any region on any page, header, or footer. With specified contexts, a widget can only be placed in certain regions dependent on the context. For example, a widget that only works when there is a current Blog Post in context would want to specify the &amp;#39;Blog Post&amp;#39; context. Multiple available contexts can be defined.&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol8i"&gt;&lt;a id="Main_Content_Script" name="Main_Content_Script"&gt;&lt;/a&gt;Main Content Script&lt;/h3&gt;
&lt;p&gt;Widget content is defined Using [[Using Velocity in Widgets|Velocity-templated markup]]. Along with all velocity directives, the entire Platform API is available to widget content script via Widget Extensions as documented in the [[api-documentation:script apis|Widget API Documentation]].&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol8j"&gt;&lt;a id="Configuration_Script" name="Configuration_Script"&gt;&lt;/a&gt;Configuration Script&lt;/h3&gt;
&lt;p&gt;Widget Configuration is defined with XML which specifies the [[Supporting Configuration|dynamic configuration]] fields available to the administrators that use and configure the widget.&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol8k"&gt;&lt;a id="Header_Script" name="Header_Script"&gt;&lt;/a&gt;Header Script&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Header Script&lt;/strong&gt; optionally declares velocity script which, when evaluated, generates the content displayed in a widget&amp;#39;s header. When not provided, a widget&amp;#39;s header will be equivalent to its title.&lt;/p&gt;
&lt;p&gt;A common pattern for Header Script when a widget&amp;#39;s title is configurable is to use the following configuration...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;property id=&amp;quot;Title&amp;quot; resourceName=&amp;quot;Property_Title&amp;quot; dataType=&amp;quot;String&amp;quot; defaultValue=&amp;quot;${resource:Widget_Title}&amp;quot; controlType=&amp;quot;Telligent.Evolution.Controls.ContentFragmentTokenStringControl, Telligent.Evolution.Controls&amp;quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;...and the following Header Script...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$core_v2_widget.ApplyTokens($core_v2_widget.GetStringValue(&amp;#39;Title&amp;#39;, &amp;#39;${resource:Widget_Title}&amp;#39;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows for the widget configuration to expose editing of the title while still supporting resource tokens.&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol8l"&gt;&lt;a id="CSS_Script" name="CSS_Script"&gt;&lt;/a&gt;CSS Script&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;CSS Script&lt;/strong&gt; can be defined with [[Using Velocity in Widgets|Velocity script]] to dynamically define what CSS classes are applied to the widget&amp;#39;s wrapper.&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol8m"&gt;&lt;a id="Language_Resources" name="Language_Resources"&gt;&lt;/a&gt;Language Resources&lt;/h3&gt;
&lt;p&gt;Widgets can define all of their own resources for localization. Resources component allows for defining resources for each currently-enabled Language pack. Resources can be exported and imported independently of widgets when Managing Widgets.&lt;/p&gt;
&lt;p&gt;A defined resource can be referenced via widget script as:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$core_v2_language.GetResource(&amp;quot;resource_name&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="mcetoc_1euohuol8n"&gt;&lt;a id="Attachments" name="Attachments"&gt;&lt;/a&gt;Attachments&lt;/h3&gt;
&lt;p&gt;Any file type can be &lt;strong&gt;attached&lt;/strong&gt; to a widget, including images, JavaScript, stylesheets, web fonts, and more. To attach files, select &lt;strong&gt;Upload Attachment&lt;/strong&gt; from the &lt;strong&gt;Widget Actions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Uploaded attachments that are known editable text formats including CSS, JavaScript, HTML, XML, and VM (velocity) are editable in Widget Studio. Other file types are previewed on their own component tabs.&lt;/p&gt;
&lt;h2 id="mcetoc_1euohuol8o"&gt;&lt;a id="Advanced_User_Interface_Features" name="Advanced_User_Interface_Features"&gt;&lt;/a&gt;Advanced User Interface Features&lt;/h2&gt;
&lt;h3 id="mcetoc_1euohuol8p"&gt;&lt;a id="Keyboard_Shortcuts" name="Keyboard_Shortcuts"&gt;&lt;/a&gt;Keyboard Shortcuts&lt;/h3&gt;
&lt;p&gt;Widget Studio supports the following keyboard shortcuts&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CTRL + Q&lt;/strong&gt;: Quickly switch between previous and other tabs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + LEFT&lt;/strong&gt;: Switch one tab to the left&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + RIGHT&lt;/strong&gt;: Switch one tab to the right&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + CMD + LEFT&lt;/strong&gt;: Reposition current tab to the left&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + CMD + RIGHT&lt;/strong&gt;: Reposition current tab to the right&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + W&lt;/strong&gt;: Close the current tab&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + N&lt;/strong&gt;: New Widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + W&lt;/strong&gt;: Close other tabs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + R&lt;/strong&gt;: Reveal current tab in the tree&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + ,&lt;/strong&gt;: Search&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMD + P&lt;/strong&gt;: Publish the staged widget changes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMD + SHIFT + P&lt;/strong&gt;: Revert the staged widget changes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMD + O&lt;/strong&gt;: Preview the widget&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img style="border:1px solid #DDD;width:441px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6406.png" /&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1euohuol8q"&gt;&lt;a id="Settings" name="Settings"&gt;&lt;/a&gt;Settings&lt;/h3&gt;
&lt;p&gt;The following settings are available in &lt;strong&gt;Settings&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Theme&lt;/strong&gt;: Syntax highlighting color scheme&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Show Gutter&lt;/strong&gt;: defines whether line numbers are shown&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Highlight Line&lt;/strong&gt;: defines whether the current line is displayed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Show invisibles&lt;/strong&gt;: defines whether non-visible characters such as tabs and line breaks are rendered&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/3806.png"&gt;&lt;img style="border:1px solid #DDD;width:523px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/3806.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Widget Studio, widgets&lt;/div&gt;
</description></item><item><title>Working with Widget Studio</title><link>https://community.telligent.com/community/11/w/developer-training/65088/working-with-widget-studio/revision/3</link><pubDate>Wed, 05 Aug 2020 15:10:25 GMT</pubDate><guid isPermaLink="false">666181cf-b84f-490b-a841-f56367207b3b</guid><dc:creator>Former Member</dc:creator><comments>https://community.telligent.com/community/11/w/developer-training/65088/working-with-widget-studio#comments</comments><description>Revision 3 posted to Developer Training by Former Member on 08/05/2020 15:10:25&lt;br /&gt;
&lt;p&gt;Widget Studio is an interface in the Administration UI which provides complete management and authorship of [[Widgets|widgets]] directly within Verint Community. It is available by navigating to &lt;strong&gt;Administration &amp;gt; Interface &amp;gt; Widgets&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;[toc]&lt;/p&gt;
&lt;h2&gt;&lt;a id="When_would_I_use_Widget_Studio" name="When_would_I_use_Widget_Studio"&gt;&lt;/a&gt;When would I use Widget Studio?&lt;/h2&gt;
&lt;p&gt;Widget Studio is used for both widget management and widget authoring. Example uses include:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Widget management&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browsing widgets&lt;/li&gt;
&lt;li&gt;Importing widgets&lt;/li&gt;
&lt;li&gt;Exporting widgets&lt;/li&gt;
&lt;li&gt;Reviewing and publishing widget changes&lt;/li&gt;
&lt;li&gt;Importing and exporting of widget language resources&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Widget authoring&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Editing existing widgets&lt;/li&gt;
&lt;li&gt;Creating new widgets&lt;/li&gt;
&lt;li&gt;Comparing and live-previewing widget changes&lt;/li&gt;
&lt;li&gt;Reverting changed widgets&lt;/li&gt;
&lt;li&gt;Reviewing widget API documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a id="The_Interface" name="The_Interface"&gt;&lt;/a&gt;The Interface&lt;/h2&gt;
&lt;p&gt;It is helpful to understand the major components of the new Widget Studio interface before diving into management and authoring details.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/studio.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/studio.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Browse_View" name="Browse_View"&gt;&lt;/a&gt;Browse View&lt;/h3&gt;
&lt;p&gt;The browse view on the left supports viewing the set of installed widgets.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Tree" name="Tree"&gt;&lt;/a&gt;Tree&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png"&gt;&lt;img style="border:1px solid #DDD;width:471px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The tree lists both widgets as well as their [[Widgets|components]] such as content script, resources, and attachments. Widget nodes identify the widgets&amp;#39; [[Widgets|version and staging states]], including whether the widget is a customized default, fully custom, or themed. If the widget has staged changes, a yellow pencil indicator is shown.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Filtering" name="Filtering"&gt;&lt;/a&gt;Filtering&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/1121.png"&gt;&lt;img style="border:1px solid #DDD;width:250px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/1121.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Widgets can be filtered by&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Widget Type:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;All&lt;/strong&gt;: All Widgets, excluding those provided by scripted plugins&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User Installed&lt;/strong&gt;: Widgets created or imported via Widget Studio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Default&lt;/strong&gt;: [[Widgets|Factory default widgets]] provided by the platform or [[Factory Default Widget Providers|third-party plugins]]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Edited Default&lt;/strong&gt;: Factory default widgets which have been customized with overrides in Widget Studio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Provider: Provider Name&lt;/strong&gt;: Widgets provided by specific [[Factory Default Widget Providers|factory default providers]], including scripted plugins.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Theme:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;any&lt;/strong&gt;: any theme version&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Theme Name&lt;/strong&gt;: widgets that have a [[Widgets|themed version]] specifically for the theme name selected&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Text search:
&lt;ul&gt;
&lt;li&gt;Text that matches the widget&amp;#39;s name, description, or attachment name&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a id="Browse_Actions" name="Browse_Actions"&gt;&lt;/a&gt;Browse Actions&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6366.png"&gt;&lt;img style="border:1px solid #DDD;width:374px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6366.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Browse actions are available above the tree&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New&lt;/strong&gt;: Create a new widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Import&lt;/strong&gt;: Upload widgets or widget resources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-Select&lt;/strong&gt;: Toggle multi-selection of multiple widgets for export&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API Documentation&lt;/strong&gt;: View API Documentation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Settings&lt;/strong&gt;: Widget Studio settings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export All Widgets&lt;/strong&gt;: Exports all widgets that are available to view&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export All Resources&lt;/strong&gt;: Exports all resources, even from any widgets which aren&amp;#39;t available to view or edit&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a id="Widget_Actions" name="Widget_Actions"&gt;&lt;/a&gt;Widget Actions&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png"&gt;&lt;img style="border:1px solid #DDD;width:471px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Widget actions are available alongside each widget node in the tree. These same actions are also available in widgets&amp;#39; edit views. The exact set of widget actions can very based on the state of the widget, and update automatically in response to widget state changes. Details about these actions are available within the &lt;strong&gt;Management&lt;/strong&gt; and &lt;strong&gt;Authoring&lt;/strong&gt; sections below&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Preview&lt;/strong&gt;: Live-preview the widget in the user interface&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Publish Staged Changes&lt;/strong&gt;: Publishes staged changes, if any exist&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Revert Staged Changes&lt;/strong&gt;: Reverts staged changes, if any exist&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add File&lt;/strong&gt;: Adds a new editable attachment to the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upload Attachment&lt;/strong&gt;: Uploads a new attachment of any type to the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Save as Copy&lt;/strong&gt;: Creates a new widget as a copy&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Save for Theme&lt;/strong&gt;: Creates a themed version of the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export Widget&lt;/strong&gt;: Exports the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export Resources&lt;/strong&gt;: Exports the widget&amp;#39;s language resources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delete or Revert&lt;/strong&gt;: Deletes a custom widget or reverts a customized default to a factory default&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a id="Multi-selection" name="Multi-selection"&gt;&lt;/a&gt;Multi-selection&lt;/h4&gt;
&lt;p&gt;Multi-selection enables selecting multiple widgets for widget or resource export. Multi-selection is not as inclusive as the &lt;strong&gt;Export All Widgets&lt;/strong&gt; or &lt;strong&gt;Export All Resources&lt;/strong&gt; options, as some widgets may not be available for viewing or editing though their resources are still editable.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png"&gt;&lt;img style="border:1px solid #DDD;width:250px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Staging_View" name="Staging_View"&gt;&lt;/a&gt;Staging View&lt;/h3&gt;
&lt;p&gt;When one or more widgets is staged, the staging view is shown.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png"&gt;&lt;img style="border:1px solid #DDD;width:468px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When a widget is edited, (including everything from content script changes to just importing resource translations) the changes are staged. Staged changes are only visible to the user performing the change.&lt;/p&gt;
&lt;p&gt;Staged widgets can be published or reverted back to their non-staged state. Staged changes can also be viewed n the site with live updates as widgets change, only for the user making the change.&lt;/p&gt;
&lt;p&gt;The staging view lists all currently-staged widgets, along with actions to preview and publish or revert single widgets or all of them at once.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Tab_View" name="Tab_View"&gt;&lt;/a&gt;Tab View&lt;/h3&gt;
&lt;p&gt;Widget Studio supports viewing and editing multiple components from multiple widgets simultaneously. Each component is opened on its own tab, which the tab view navigates.&lt;/p&gt;
&lt;p&gt;Each tab lists the name of the widget, the component, its yellow staged state (if staged), with links to close the tab, close all other tabs, or reveal the staged component within the tree (if not already focused) for greater context.&lt;/p&gt;
&lt;p&gt;Tabs can be re-ordered via drag and drop, and tabs overflow into a dropdown revealing less used tabs.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6253.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6253.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Editor_View" name="Editor_View"&gt;&lt;/a&gt;Editor View&lt;/h3&gt;
&lt;p&gt;The editor view area displays multiple types of editing experiences, depending on the component. Editor views could include [[Using Velocity in Widgets|Velocity script]], [[Supporting Configuration|Velocity script]], language resources, attachments, and more.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7610.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/7610.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Component_Navigation_and_Actions" name="Component_Navigation_and_Actions"&gt;&lt;/a&gt;Component Navigation and Actions&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/editor_2D00_header.png"&gt;&lt;img style="border:1px solid #DDD;width:458px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/editor_2D00_header.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Each editor view identifies the widget&amp;#39;s &lt;strong&gt;theme&lt;/strong&gt; (if it has one), its &lt;strong&gt;name&lt;/strong&gt;, the &lt;strong&gt;component&lt;/strong&gt; being edited with links to all other components in the widget, and widget actions. Widget actions are the same as those available from the &lt;strong&gt;Browse View&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/2350.png"&gt;&lt;img style="border:1px solid #DDD;width:368px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/2350.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Diffing" name="Diffing"&gt;&lt;/a&gt;Diffing&lt;/h4&gt;
&lt;p&gt;If a widget is staged, it is identified as such with a button to &lt;strong&gt;Compare Changes&lt;/strong&gt; with the current published version. If the widget is a customized default, another button is shown to &lt;strong&gt;Compare Changes&lt;/strong&gt; with the default.&lt;/p&gt;
&lt;p&gt;Selecting either &lt;strong&gt;Compare Changes&lt;/strong&gt; button will switch the editor view to comparison mode where the left side is the original and the right side is the edited version. For most editor views types, comparison view still allows editing while in comparison view.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When using the &lt;strong&gt;Compare Changes&lt;/strong&gt; tool on a Widget&amp;#39;s Overview, all components that have changes are highlighted in yellow.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Full_Screen_Editing" name="Full_Screen_Editing"&gt;&lt;/a&gt;Full Screen Editing&lt;/h4&gt;
&lt;p&gt;Most editor view types support being edited in full screen. Select &lt;strong&gt;Full Screen&lt;/strong&gt; to toggle.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6443.png"&gt;&lt;img style="border:1px solid #DDD;width:80px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6443.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6114.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6114.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a id="Managing_Widgets" name="Managing_Widgets"&gt;&lt;/a&gt;Managing Widgets&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Browsing_Widgets" name="Browsing_Widgets"&gt;&lt;/a&gt;Browsing Widgets&lt;/h3&gt;
&lt;h3&gt;&lt;a id="Importing_Widgets" name="Importing_Widgets"&gt;&lt;/a&gt;Importing Widgets&lt;/h3&gt;
&lt;p&gt;Widgets can be installed from widget export files by selecting the &lt;strong&gt;Import&lt;/strong&gt; button in the &lt;strong&gt;Browse View&lt;/strong&gt;. A single widget export file can be selected (which can potentially contain multiple widgets). A confirmation will be shown before import like the following. Note that widgets that are either new or updated are identified as such with the option to not import them.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/1351.png"&gt;&lt;img style="border:1px solid #DDD;width:519px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/1351.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Imported widgets are imported to a staged, non-published, state&lt;/strong&gt;, the same as if the widgets had been edited directly within Widget Studio. This allows for further review of changes and differences using the &lt;strong&gt;Compare&lt;/strong&gt; tools in editor views prior to eventually selecting &lt;strong&gt;publish&lt;/strong&gt; or &lt;strong&gt;revert&lt;/strong&gt;. Thanks to staging, importing is a safe action which does not affect the published user interface, and can be fully reverted instead of published.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png"&gt;&lt;img style="border:1px solid #DDD;width:470px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once published, imported widget updates install either as custom defaults (if there was a default version) or as a new version of the existing custom widget, overwriting the previous.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Exporting_Widgets" name="Exporting_Widgets"&gt;&lt;/a&gt;Exporting Widgets&lt;/h3&gt;
&lt;p&gt;Any widget, whether &lt;strong&gt;Factory Default&lt;/strong&gt; or &lt;strong&gt;Custom&lt;/strong&gt;, can be exported. A widget export includes widgets&amp;#39; script, configuration, attachments, and resources. A single export file can contain multiple widgets.&lt;/p&gt;
&lt;p&gt;To produce a widget export select Export Widget from a widget&amp;#39;s actions in the Tree View or any of the widget&amp;#39;s components&amp;#39; edit views. Alternatively, multiple widgets can be exported in a single file by entering multi-select mode in the Browse View, checking widget checkboxes, and then selecting &lt;em&gt;Export Selected Widgets&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png"&gt;&lt;img style="border:1px solid #DDD;width:250px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Publishing_or_Reverting_Staged_Changes" name="Publishing_or_Reverting_Staged_Changes"&gt;&lt;/a&gt;Publishing or Reverting Staged Changes&lt;/h3&gt;
&lt;p&gt;Staged changes can be published or reverted using &lt;strong&gt;Widget Actions&lt;/strong&gt; in the Browse View, editor view, or in the &lt;strong&gt;Staging View&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png"&gt;&lt;img style="border:1px solid #DDD;width:470px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Deleting_or_Reverting_changes_to_Widgets" name="Deleting_or_Reverting_changes_to_Widgets"&gt;&lt;/a&gt;Deleting or Reverting changes to Widgets&lt;/h3&gt;
&lt;p&gt;Custom widgets can be fully deleted. Factory defaults cannot be deleted, but customized versions of factory defaults can be reverted back to their original.&lt;/p&gt;
&lt;p&gt;To delete or revert a widget (depending on its type), select &lt;strong&gt;Delete&lt;/strong&gt; or &lt;strong&gt;Revert&lt;/strong&gt; from &lt;strong&gt;Widget Actions&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Importing_and_exporting_Language_Resources" name="Importing_and_exporting_Language_Resources"&gt;&lt;/a&gt;Importing and exporting Language Resources&lt;/h3&gt;
&lt;p&gt;Widget exports include all language resources used by those widgets. Widget Studio also supports exporting and importing only the language resources for widgets.&lt;/p&gt;
&lt;p&gt;To export a widget language resources, select &lt;strong&gt;Export Resources&lt;/strong&gt; from &lt;strong&gt;Widget Actions&lt;/strong&gt;. Alternatively, multi-select mode can be used export multiple widgets&amp;#39; resources.&lt;/p&gt;
&lt;p&gt;To translate all widget-based user interfaces in the Community, use &lt;strong&gt;Export All Resources&lt;/strong&gt;, as some widgets may not be available for viewing, editing, or multi-selection.&lt;/p&gt;
&lt;h2&gt;&lt;a id="Authoring_Widgets" name="Authoring_Widgets"&gt;&lt;/a&gt;Authoring Widgets&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Editing_Widgets" name="Editing_Widgets"&gt;&lt;/a&gt;Editing Widgets&lt;/h3&gt;
&lt;h4&gt;&lt;a id="Editing_and_Saving" name="Editing_and_Saving"&gt;&lt;/a&gt;Editing and Saving&lt;/h4&gt;
&lt;p&gt;To edit a widget, navigate to one of its components in the tree view. All changes are automatically saved to staging. Staged widgets can be used and configured on the site by the developer, but are not publicly available until publishing.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Comparing_Changes" name="Comparing_Changes"&gt;&lt;/a&gt;Comparing Changes&lt;/h4&gt;
&lt;p&gt;As widgets are edited, staged changes can be compared with the non-staged by selecting &lt;strong&gt;Compare Changes&lt;/strong&gt;. For most widget component views, edits can continue to be made while in comparison view.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Previewing_Changes" name="Previewing_Changes"&gt;&lt;/a&gt;Previewing Changes&lt;/h4&gt;
&lt;p&gt;Widgets can be previewed by selecting &lt;strong&gt;Preview&lt;/strong&gt; in &lt;strong&gt;Widget Actions&lt;/strong&gt;. If the widget is currently in use, a new browser window will be opened to a page using the widget, pre-loaded to &lt;strong&gt;Preview&lt;/strong&gt; mode. Preview mode renders the widget&amp;#39;s staged version, automatically refreshing the host page as widget changes continue to be saved.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Publishing_or_Reverting_Staged_Changes" name="Publishing_or_Reverting_Staged_Changes"&gt;&lt;/a&gt;Publishing or Reverting Staged Changes&lt;/h4&gt;
&lt;p&gt;Staged changes can be published or reverted using &lt;strong&gt;Widget Actions&lt;/strong&gt; in the Browse View, editor view, or in the &lt;strong&gt;Staging View&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png"&gt;&lt;img style="border:1px solid #DDD;width:468px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Creating_new_Widgets" name="Creating_new_Widgets"&gt;&lt;/a&gt;Creating new Widgets&lt;/h3&gt;
&lt;h4&gt;&lt;a id="Creating_a_new_Widget" name="Creating_a_new_Widget"&gt;&lt;/a&gt;Creating a new Widget&lt;/h4&gt;
&lt;p&gt;To create a new Widget, select &lt;strong&gt;New Widget&lt;/strong&gt; in the Browse View. While widget changes are automatically saved, new widgets are not created until at least one field is edited. If not provided, widget names are automatically provided. As with all edits, new widgets are saved into staging. Staged widgets can be used and configured on the site by the developer, but are not publicly available until publishing.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Branching_a_widget_to_a_theme-specific_version" name="Branching_a_widget_to_a_theme-specific_version"&gt;&lt;/a&gt;Branching a widget to a theme-specific version&lt;/h4&gt;
&lt;p&gt;By default, a given Widget functions identically in any theme. A theme-specific Widget is only used when that theme is selected. A theme-specific widget defines its own complete set of content, configuration, attachments, and resources and can potentially vary significantly in implementation from its base.&lt;/p&gt;
&lt;p&gt;To create a theme-specific version, select &lt;strong&gt;Save for Theme&lt;/strong&gt; in &lt;strong&gt;Widget Actions&lt;/strong&gt;. Widget Studio will prompt for which theme to save against before staging a themed variant.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Branching_a_widget_to_a_new_separate_widget" name="Branching_a_widget_to_a_new_separate_widget"&gt;&lt;/a&gt;Branching a widget to a new, separate, widget&lt;/h4&gt;
&lt;p&gt;To save a copy of a widget as a new, separate, widget that does not overwrite the original, select &lt;strong&gt;Save as Copy&lt;/strong&gt; from &lt;strong&gt;Widget Actions&lt;/strong&gt;. The new widget will be staged with a copy of the source widget&amp;#39;s content, configuration, attachments, and resources and will not affect existing usages of the source widget.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Deleting_or_Reverting_a_widget" name="Deleting_or_Reverting_a_widget"&gt;&lt;/a&gt;Deleting or Reverting a widget&lt;/h4&gt;
&lt;p&gt;A widget which was imported or created via the Widget Studio can be deleted, but not reverted. A Factory Default widget can be neither deleted nor reverted. However, a customized version of a factory default (a factory default which has been &amp;quot;saved&amp;quot; against through Widget Studio) can be reverted back to its original Factory Default state. The type of widget being viewed determines whether a &lt;strong&gt;Delete&lt;/strong&gt; or &lt;strong&gt;Revert&lt;/strong&gt; button is presented.&lt;/p&gt;
&lt;h2&gt;&lt;a id="Widget_Components_Definitions" name="Widget_Components_Definitions"&gt;&lt;/a&gt;Widget Components Definitions&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Overview" name="Overview"&gt;&lt;/a&gt;Overview&lt;/h3&gt;
&lt;p&gt;Both &lt;strong&gt;Name&lt;/strong&gt; and &lt;strong&gt;Description&lt;/strong&gt; support resource tokens to allow for localized names. So, if a widget is titled &amp;quot;Hello World&amp;quot;, &amp;quot;Hello World&amp;quot; can optionally be defined as a resource named &lt;code&gt;title_hello_world&lt;/code&gt; and the &amp;#39;Name&amp;#39; field for the widget can contain &lt;code&gt;${resource:title_hello_world}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Show Header by Default&lt;/strong&gt; defines whether the header of a widget is shown by default. The selected wrapping format when placing a widget can override this choice.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is Cacheable&lt;/strong&gt; defines whether a widget&amp;#39;s output should be cached by the site. This should be enabled whenever possible, which includes when a widget is not Accessing-user-specific, or is user-specific but can be cached per user.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vary Cache by User&lt;/strong&gt; defines whether a cached widget should use the same output for every accessing user or a separate cached copy for each. A widget whose content is specific to the accessing user should vary cache by the user.&lt;/p&gt;
&lt;p&gt;To allow for easier styling of a widget from a theme, a widget can define its own unique &lt;strong&gt;CSS class&lt;/strong&gt; which is applied to its wrapping div element. CSS selectors can then be targeted to specific descendants of the class as follows&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.content-fragment.social-share h2 { color: red; }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Without defined &lt;strong&gt;available contexts&lt;/strong&gt;, a widget can be placed in any region on any page, header, or footer. With specified contexts, a widget can only be placed in certain regions dependent on the context. For example, a widget that only works when there is a current Blog Post in context would want to specify the &amp;#39;Blog Post&amp;#39; context. Multiple available contexts can be defined.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Main_Content_Script" name="Main_Content_Script"&gt;&lt;/a&gt;Main Content Script&lt;/h3&gt;
&lt;p&gt;Widget content is defined Using [[Using Velocity in Widgets|Velocity-templated markup]]. Along with all velocity directives, the entire Platform API is available to widget content script via Widget Extensions as documented in the [[api-documentation:Widget API Documentation|Widget API Documentation]].&lt;/p&gt;
&lt;h3&gt;&lt;a id="Configuration_Script" name="Configuration_Script"&gt;&lt;/a&gt;Configuration Script&lt;/h3&gt;
&lt;p&gt;Widget Configuration is defined with XML which specifies the [[Supporting Configuration|dynamic configuration]] fields available to the administrators that use and configure the widget.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Header_Script" name="Header_Script"&gt;&lt;/a&gt;Header Script&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Header Script&lt;/strong&gt; optionally declares velocity script which, when evaluated, generates the content displayed in a widget&amp;#39;s header. When not provided, a widget&amp;#39;s header will be equivalent to its title.&lt;/p&gt;
&lt;p&gt;A common pattern for Header Script when a widget&amp;#39;s title is configurable is to use the following configuration...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;property id=&amp;quot;Title&amp;quot; resourceName=&amp;quot;Property_Title&amp;quot; dataType=&amp;quot;String&amp;quot; defaultValue=&amp;quot;${resource:Widget_Title}&amp;quot; controlType=&amp;quot;Telligent.Evolution.Controls.ContentFragmentTokenStringControl, Telligent.Evolution.Controls&amp;quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;...and the following Header Script...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$core_v2_widget.ApplyTokens($core_v2_widget.GetStringValue(&amp;#39;Title&amp;#39;, &amp;#39;${resource:Widget_Title}&amp;#39;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows for the widget configuration to expose editing of the title while still supporting resource tokens.&lt;/p&gt;
&lt;h3&gt;&lt;a id="CSS_Script" name="CSS_Script"&gt;&lt;/a&gt;CSS Script&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;CSS Script&lt;/strong&gt; can be defined with [[Using Velocity in Widgets|Velocity script]] to dynamically define what CSS classes are applied to the widget&amp;#39;s wrapper.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Language_Resources" name="Language_Resources"&gt;&lt;/a&gt;Language Resources&lt;/h3&gt;
&lt;p&gt;Widgets can define all of their own resources for localization. Resources component allows for defining resources for each currently-enabled Language pack. Resources can be exported and imported independently of widgets when Managing Widgets.&lt;/p&gt;
&lt;p&gt;A defined resource can be referenced via widget script as:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$core_v2_language.GetResource(&amp;quot;resource_name&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a id="Attachments" name="Attachments"&gt;&lt;/a&gt;Attachments&lt;/h3&gt;
&lt;p&gt;Any file type can be &lt;strong&gt;attached&lt;/strong&gt; to a widget, including images, JavaScript, stylesheets, web fonts, and more. To attach files, select &lt;strong&gt;Upload Attachment&lt;/strong&gt; from the &lt;strong&gt;Widget Actions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Uploaded attachments that are known editable text formats including CSS, JavaScript, HTML, XML, and VM (velocity) are editable in Widget Studio. Other file types are previewed on their own component tabs.&lt;/p&gt;
&lt;h2&gt;&lt;a id="Advanced_User_Interface_Features" name="Advanced_User_Interface_Features"&gt;&lt;/a&gt;Advanced User Interface Features&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Keyboard_Shortcuts" name="Keyboard_Shortcuts"&gt;&lt;/a&gt;Keyboard Shortcuts&lt;/h3&gt;
&lt;p&gt;Widget Studio supports the following keyboard shortcuts&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CTRL + Q&lt;/strong&gt;: Quickly switch between previous and other tabs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + LEFT&lt;/strong&gt;: Switch one tab to the left&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + RIGHT&lt;/strong&gt;: Switch one tab to the right&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + CMD + LEFT&lt;/strong&gt;: Reposition current tab to the left&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + CMD + RIGHT&lt;/strong&gt;: Reposition current tab to the right&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + W&lt;/strong&gt;: Close the current tab&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + N&lt;/strong&gt;: New Widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + W&lt;/strong&gt;: Close other tabs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + R&lt;/strong&gt;: Reveal current tab in the tree&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + ,&lt;/strong&gt;: Search&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMD + P&lt;/strong&gt;: Publish the staged widget changes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMD + SHIFT + P&lt;/strong&gt;: Revert the staged widget changes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMD + O&lt;/strong&gt;: Preview the widget&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img style="border:1px solid #DDD;width:441px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6406.png" /&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Settings" name="Settings"&gt;&lt;/a&gt;Settings&lt;/h3&gt;
&lt;p&gt;The following settings are available in &lt;strong&gt;Settings&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Theme&lt;/strong&gt;: Syntax highlighting color scheme&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Show Gutter&lt;/strong&gt;: defines whether line numbers are shown&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Highlight Line&lt;/strong&gt;: defines whether the current line is displayed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Show invisibles&lt;/strong&gt;: defines whether non-visible characters such as tabs and line breaks are rendered&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/3806.png"&gt;&lt;img style="border:1px solid #DDD;width:523px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/3806.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Widget Studio, widgets&lt;/div&gt;
</description></item><item><title>Working with Widget Studio</title><link>https://community.telligent.com/community/11/w/developer-training/65088/working-with-widget-studio/revision/2</link><pubDate>Wed, 05 Aug 2020 15:10:06 GMT</pubDate><guid isPermaLink="false">666181cf-b84f-490b-a841-f56367207b3b</guid><dc:creator>Former Member</dc:creator><comments>https://community.telligent.com/community/11/w/developer-training/65088/working-with-widget-studio#comments</comments><description>Revision 2 posted to Developer Training by Former Member on 08/05/2020 15:10:06&lt;br /&gt;
&lt;p&gt;Widget Studio is an interface in the Administration UI which provides complete management and authorship of [[Widgets|widgets]] directly within Verint Community. It is available by navigating to &lt;strong&gt;Administration &amp;gt; Interface &amp;gt; Widgets&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;[toc]&lt;/p&gt;
&lt;h2&gt;&lt;a id="When_would_I_use_Widget_Studio" name="When_would_I_use_Widget_Studio"&gt;&lt;/a&gt;When would I use Widget Studio?&lt;/h2&gt;
&lt;p&gt;Widget Studio is used for both widget management and widget authoring. Example uses include:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Widget management&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browsing widgets&lt;/li&gt;
&lt;li&gt;Importing widgets&lt;/li&gt;
&lt;li&gt;Exporting widgets&lt;/li&gt;
&lt;li&gt;Reviewing and publishing widget changes&lt;/li&gt;
&lt;li&gt;Importing and exporting of widget language resources&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Widget authoring&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Editing existing widgets&lt;/li&gt;
&lt;li&gt;Creating new widgets&lt;/li&gt;
&lt;li&gt;Comparing and live-previewing widget changes&lt;/li&gt;
&lt;li&gt;Reverting changed widgets&lt;/li&gt;
&lt;li&gt;Reviewing widget API documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a id="The_Interface" name="The_Interface"&gt;&lt;/a&gt;The Interface&lt;/h2&gt;
&lt;p&gt;It is helpful to understand the major components of the new Widget Studio interface before diving into management and authoring details.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/studio.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/studio.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Browse_View" name="Browse_View"&gt;&lt;/a&gt;Browse View&lt;/h3&gt;
&lt;p&gt;The browse view on the left supports viewing the set of installed widgets.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Tree" name="Tree"&gt;&lt;/a&gt;Tree&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png"&gt;&lt;img style="border:1px solid #DDD;width:471px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The tree lists both widgets as well as their [[Widgets|components]] such as content script, resources, and attachments. Widget nodes identify the widgets&amp;#39; [[Widgets|version and staging states]], including whether the widget is a customized default, fully custom, or themed. If the widget has staged changes, a yellow pencil indicator is shown.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Filtering" name="Filtering"&gt;&lt;/a&gt;Filtering&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/1121.png"&gt;&lt;img style="border:1px solid #DDD;width:250px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/1121.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Widgets can be filtered by&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Widget Type:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;All&lt;/strong&gt;: All Widgets, excluding those provided by scripted plugins&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User Installed&lt;/strong&gt;: Widgets created or imported via Widget Studio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Default&lt;/strong&gt;: [[Widgets|Factory default widgets]] provided by the platform or [[Factory Default Widget Providers|third-party plugins]]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Edited Default&lt;/strong&gt;: Factory default widgets which have been customized with overrides in Widget Studio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Provider: Provider Name&lt;/strong&gt;: Widgets provided by specific [[Factory Default Widget Providers|factory default providers]], including scripted plugins.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Theme:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;any&lt;/strong&gt;: any theme version&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Theme Name&lt;/strong&gt;: widgets that have a [[Widgets|themed version]] specifically for the theme name selected&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Text search:
&lt;ul&gt;
&lt;li&gt;Text that matches the widget&amp;#39;s name, description, or attachment name&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a id="Browse_Actions" name="Browse_Actions"&gt;&lt;/a&gt;Browse Actions&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6366.png"&gt;&lt;img style="border:1px solid #DDD;width:374px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6366.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Browse actions are available above the tree&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New&lt;/strong&gt;: Create a new widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Import&lt;/strong&gt;: Upload widgets or widget resources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-Select&lt;/strong&gt;: Toggle multi-selection of multiple widgets for export&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API Documentation&lt;/strong&gt;: View API Documentation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Settings&lt;/strong&gt;: Widget Studio settings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export All Widgets&lt;/strong&gt;: Exports all widgets that are available to view&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export All Resources&lt;/strong&gt;: Exports all resources, even from any widgets which aren&amp;#39;t available to view or edit&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a id="Widget_Actions" name="Widget_Actions"&gt;&lt;/a&gt;Widget Actions&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png"&gt;&lt;img style="border:1px solid #DDD;width:471px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Widget actions are available alongside each widget node in the tree. These same actions are also available in widgets&amp;#39; edit views. The exact set of widget actions can very based on the state of the widget, and update automatically in response to widget state changes. Details about these actions are available within the &lt;strong&gt;Management&lt;/strong&gt; and &lt;strong&gt;Authoring&lt;/strong&gt; sections below&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Preview&lt;/strong&gt;: Live-preview the widget in the user interface&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Publish Staged Changes&lt;/strong&gt;: Publishes staged changes, if any exist&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Revert Staged Changes&lt;/strong&gt;: Reverts staged changes, if any exist&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add File&lt;/strong&gt;: Adds a new editable attachment to the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upload Attachment&lt;/strong&gt;: Uploads a new attachment of any type to the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Save as Copy&lt;/strong&gt;: Creates a new widget as a copy&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Save for Theme&lt;/strong&gt;: Creates a themed version of the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export Widget&lt;/strong&gt;: Exports the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export Resources&lt;/strong&gt;: Exports the widget&amp;#39;s language resources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delete or Revert&lt;/strong&gt;: Deletes a custom widget or reverts a customized default to a factory default&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a id="Multi-selection" name="Multi-selection"&gt;&lt;/a&gt;Multi-selection&lt;/h4&gt;
&lt;p&gt;Multi-selection enables selecting multiple widgets for widget or resource export. Multi-selection is not as inclusive as the &lt;strong&gt;Export All Widgets&lt;/strong&gt; or &lt;strong&gt;Export All Resources&lt;/strong&gt; options, as some widgets may not be available for viewing or editing though their resources are still editable.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png"&gt;&lt;img style="border:1px solid #DDD;width:250px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Staging_View" name="Staging_View"&gt;&lt;/a&gt;Staging View&lt;/h3&gt;
&lt;p&gt;When one or more widgets is staged, the staging view is shown.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png"&gt;&lt;img style="border:1px solid #DDD;width:468px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When a widget is edited, (including everything from content script changes to just importing resource translations) the changes are staged. Staged changes are only visible to the user performing the change.&lt;/p&gt;
&lt;p&gt;Staged widgets can be published or reverted back to their non-staged state. Staged changes can also be viewed n the site with live updates as widgets change, only for the user making the change.&lt;/p&gt;
&lt;p&gt;The staging view lists all currently-staged widgets, along with actions to preview and publish or revert single widgets or all of them at once.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Tab_View" name="Tab_View"&gt;&lt;/a&gt;Tab View&lt;/h3&gt;
&lt;p&gt;Widget Studio supports viewing and editing multiple components from multiple widgets simultaneously. Each component is opened on its own tab, which the tab view navigates.&lt;/p&gt;
&lt;p&gt;Each tab lists the name of the widget, the component, its yellow staged state (if staged), with links to close the tab, close all other tabs, or reveal the staged component within the tree (if not already focused) for greater context.&lt;/p&gt;
&lt;p&gt;Tabs can be re-ordered via drag and drop, and tabs overflow into a dropdown revealing less used tabs.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6253.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6253.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Editor_View" name="Editor_View"&gt;&lt;/a&gt;Editor View&lt;/h3&gt;
&lt;p&gt;The editor view area displays multiple types of editing experiences, depending on the component. Editor views could include [[Using Velocity in Widgets|Velocity script]], [[Supporting Configuration|Velocity script]], language resources, attachments, and more.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7610.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/7610.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Component_Navigation_and_Actions" name="Component_Navigation_and_Actions"&gt;&lt;/a&gt;Component Navigation and Actions&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/editor_2D00_header.png"&gt;&lt;img style="border:1px solid #DDD;width:458px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/editor_2D00_header.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Each editor view identifies the widget&amp;#39;s &lt;strong&gt;theme&lt;/strong&gt; (if it has one), its &lt;strong&gt;name&lt;/strong&gt;, the &lt;strong&gt;component&lt;/strong&gt; being edited with links to all other components in the widget, and widget actions. Widget actions are the same as those available from the &lt;strong&gt;Browse View&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/2350.png"&gt;&lt;img style="border:1px solid #DDD;width:368px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/2350.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Diffing" name="Diffing"&gt;&lt;/a&gt;Diffing&lt;/h4&gt;
&lt;p&gt;If a widget is staged, it is identified as such with a button to &lt;strong&gt;Compare Changes&lt;/strong&gt; with the current published version. If the widget is a customized default, another button is shown to &lt;strong&gt;Compare Changes&lt;/strong&gt; with the default.&lt;/p&gt;
&lt;p&gt;Selecting either &lt;strong&gt;Compare Changes&lt;/strong&gt; button will switch the editor view to comparison mode where the left side is the original and the right side is the edited version. For most editor views types, comparison view still allows editing while in comparison view.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When using the &lt;strong&gt;Compare Changes&lt;/strong&gt; tool on a Widget&amp;#39;s Overview, all components that have changes are highlighted in yellow.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Full_Screen_Editing" name="Full_Screen_Editing"&gt;&lt;/a&gt;Full Screen Editing&lt;/h4&gt;
&lt;p&gt;Most editor view types support being edited in full screen. Select &lt;strong&gt;Full Screen&lt;/strong&gt; to toggle.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6443.png"&gt;&lt;img style="border:1px solid #DDD;width:80px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6443.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6114.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6114.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a id="Managing_Widgets" name="Managing_Widgets"&gt;&lt;/a&gt;Managing Widgets&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Browsing_Widgets" name="Browsing_Widgets"&gt;&lt;/a&gt;Browsing Widgets&lt;/h3&gt;
&lt;h3&gt;&lt;a id="Importing_Widgets" name="Importing_Widgets"&gt;&lt;/a&gt;Importing Widgets&lt;/h3&gt;
&lt;p&gt;Widgets can be installed from widget export files by selecting the &lt;strong&gt;Import&lt;/strong&gt; button in the &lt;strong&gt;Browse View&lt;/strong&gt;. A single widget export file can be selected (which can potentially contain multiple widgets). A confirmation will be shown before import like the following. Note that widgets that are either new or updated are identified as such with the option to not import them.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/1351.png"&gt;&lt;img style="border:1px solid #DDD;width:519px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/1351.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Imported widgets are imported to a staged, non-published, state&lt;/strong&gt;, the same as if the widgets had been edited directly within Widget Studio. This allows for further review of changes and differences using the &lt;strong&gt;Compare&lt;/strong&gt; tools in editor views prior to eventually selecting &lt;strong&gt;publish&lt;/strong&gt; or &lt;strong&gt;revert&lt;/strong&gt;. Thanks to staging, importing is a safe action which does not affect the published user interface, and can be fully reverted instead of published.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png"&gt;&lt;img style="border:1px solid #DDD;width:470px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once published, imported widget updates install either as custom defaults (if there was a default version) or as a new version of the existing custom widget, overwriting the previous.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Exporting_Widgets" name="Exporting_Widgets"&gt;&lt;/a&gt;Exporting Widgets&lt;/h3&gt;
&lt;p&gt;Any widget, whether &lt;strong&gt;Factory Default&lt;/strong&gt; or &lt;strong&gt;Custom&lt;/strong&gt;, can be exported. A widget export includes widgets&amp;#39; script, configuration, attachments, and resources. A single export file can contain multiple widgets.&lt;/p&gt;
&lt;p&gt;To produce a widget export select Export Widget from a widget&amp;#39;s actions in the Tree View or any of the widget&amp;#39;s components&amp;#39; edit views. Alternatively, multiple widgets can be exported in a single file by entering multi-select mode in the Browse View, checking widget checkboxes, and then selecting &lt;em&gt;Export Selected Widgets&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png"&gt;&lt;img style="border:1px solid #DDD;width:250px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Publishing_or_Reverting_Staged_Changes" name="Publishing_or_Reverting_Staged_Changes"&gt;&lt;/a&gt;Publishing or Reverting Staged Changes&lt;/h3&gt;
&lt;p&gt;Staged changes can be published or reverted using &lt;strong&gt;Widget Actions&lt;/strong&gt; in the Browse View, editor view, or in the &lt;strong&gt;Staging View&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png"&gt;&lt;img style="border:1px solid #DDD;width:470px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Deleting_or_Reverting_changes_to_Widgets" name="Deleting_or_Reverting_changes_to_Widgets"&gt;&lt;/a&gt;Deleting or Reverting changes to Widgets&lt;/h3&gt;
&lt;p&gt;Custom widgets can be fully deleted. Factory defaults cannot be deleted, but customized versions of factory defaults can be reverted back to their original.&lt;/p&gt;
&lt;p&gt;To delete or revert a widget (depending on its type), select &lt;strong&gt;Delete&lt;/strong&gt; or &lt;strong&gt;Revert&lt;/strong&gt; from &lt;strong&gt;Widget Actions&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Importing_and_exporting_Language_Resources" name="Importing_and_exporting_Language_Resources"&gt;&lt;/a&gt;Importing and exporting Language Resources&lt;/h3&gt;
&lt;p&gt;Widget exports include all language resources used by those widgets. Widget Studio also supports exporting and importing only the language resources for widgets.&lt;/p&gt;
&lt;p&gt;To export a widget language resources, select &lt;strong&gt;Export Resources&lt;/strong&gt; from &lt;strong&gt;Widget Actions&lt;/strong&gt;. Alternatively, multi-select mode can be used export multiple widgets&amp;#39; resources.&lt;/p&gt;
&lt;p&gt;To translate all widget-based user interfaces in the Community, use &lt;strong&gt;Export All Resources&lt;/strong&gt;, as some widgets may not be available for viewing, editing, or multi-selection.&lt;/p&gt;
&lt;h2&gt;&lt;a id="Authoring_Widgets" name="Authoring_Widgets"&gt;&lt;/a&gt;Authoring Widgets&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Editing_Widgets" name="Editing_Widgets"&gt;&lt;/a&gt;Editing Widgets&lt;/h3&gt;
&lt;h4&gt;&lt;a id="Editing_and_Saving" name="Editing_and_Saving"&gt;&lt;/a&gt;Editing and Saving&lt;/h4&gt;
&lt;p&gt;To edit a widget, navigate to one of its components in the tree view. All changes are automatically saved to staging. Staged widgets can be used and configured on the site by the developer, but are not publicly available until publishing.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Comparing_Changes" name="Comparing_Changes"&gt;&lt;/a&gt;Comparing Changes&lt;/h4&gt;
&lt;p&gt;As widgets are edited, staged changes can be compared with the non-staged by selecting &lt;strong&gt;Compare Changes&lt;/strong&gt;. For most widget component views, edits can continue to be made while in comparison view.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png"&gt;&lt;img style="border:1px solid #DDD;width:640px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Previewing_Changes" name="Previewing_Changes"&gt;&lt;/a&gt;Previewing Changes&lt;/h4&gt;
&lt;p&gt;Widgets can be previewed by selecting &lt;strong&gt;Preview&lt;/strong&gt; in &lt;strong&gt;Widget Actions&lt;/strong&gt;. If the widget is currently in use, a new browser window will be opened to a page using the widget, pre-loaded to &lt;strong&gt;Preview&lt;/strong&gt; mode. Preview mode renders the widget&amp;#39;s staged version, automatically refreshing the host page as widget changes continue to be saved.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Publishing_or_Reverting_Staged_Changes" name="Publishing_or_Reverting_Staged_Changes"&gt;&lt;/a&gt;Publishing or Reverting Staged Changes&lt;/h4&gt;
&lt;p&gt;Staged changes can be published or reverted using &lt;strong&gt;Widget Actions&lt;/strong&gt; in the Browse View, editor view, or in the &lt;strong&gt;Staging View&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png"&gt;&lt;img style="border:1px solid #DDD;width:468px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Creating_new_Widgets" name="Creating_new_Widgets"&gt;&lt;/a&gt;Creating new Widgets&lt;/h3&gt;
&lt;h4&gt;&lt;a id="Creating_a_new_Widget" name="Creating_a_new_Widget"&gt;&lt;/a&gt;Creating a new Widget&lt;/h4&gt;
&lt;p&gt;To create a new Widget, select &lt;strong&gt;New Widget&lt;/strong&gt; in the Browse View. While widget changes are automatically saved, new widgets are not created until at least one field is edited. If not provided, widget names are automatically provided. As with all edits, new widgets are saved into staging. Staged widgets can be used and configured on the site by the developer, but are not publicly available until publishing.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Branching_a_widget_to_a_theme-specific_version" name="Branching_a_widget_to_a_theme-specific_version"&gt;&lt;/a&gt;Branching a widget to a theme-specific version&lt;/h4&gt;
&lt;p&gt;By default, a given Widget functions identically in any theme. A theme-specific Widget is only used when that theme is selected. A theme-specific widget defines its own complete set of content, configuration, attachments, and resources and can potentially vary significantly in implementation from its base.&lt;/p&gt;
&lt;p&gt;To create a theme-specific version, select &lt;strong&gt;Save for Theme&lt;/strong&gt; in &lt;strong&gt;Widget Actions&lt;/strong&gt;. Widget Studio will prompt for which theme to save against before staging a themed variant.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Branching_a_widget_to_a_new_separate_widget" name="Branching_a_widget_to_a_new_separate_widget"&gt;&lt;/a&gt;Branching a widget to a new, separate, widget&lt;/h4&gt;
&lt;p&gt;To save a copy of a widget as a new, separate, widget that does not overwrite the original, select &lt;strong&gt;Save as Copy&lt;/strong&gt; from &lt;strong&gt;Widget Actions&lt;/strong&gt;. The new widget will be staged with a copy of the source widget&amp;#39;s content, configuration, attachments, and resources and will not affect existing usages of the source widget.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Deleting_or_Reverting_a_widget" name="Deleting_or_Reverting_a_widget"&gt;&lt;/a&gt;Deleting or Reverting a widget&lt;/h4&gt;
&lt;p&gt;A widget which was imported or created via the Widget Studio can be deleted, but not reverted. A Factory Default widget can be neither deleted nor reverted. However, a customized version of a factory default (a factory default which has been &amp;quot;saved&amp;quot; against through Widget Studio) can be reverted back to its original Factory Default state. The type of widget being viewed determines whether a &lt;strong&gt;Delete&lt;/strong&gt; or &lt;strong&gt;Revert&lt;/strong&gt; button is presented.&lt;/p&gt;
&lt;h2&gt;&lt;a id="Widget_Components_Definitions" name="Widget_Components_Definitions"&gt;&lt;/a&gt;Widget Components Definitions&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Overview" name="Overview"&gt;&lt;/a&gt;Overview&lt;/h3&gt;
&lt;p&gt;Both &lt;strong&gt;Name&lt;/strong&gt; and &lt;strong&gt;Description&lt;/strong&gt; support resource tokens to allow for localized names. So, if a widget is titled &amp;quot;Hello World&amp;quot;, &amp;quot;Hello World&amp;quot; can optionally be defined as a resource named &lt;code&gt;title_hello_world&lt;/code&gt; and the &amp;#39;Name&amp;#39; field for the widget can contain &lt;code&gt;${resource:title_hello_world}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Show Header by Default&lt;/strong&gt; defines whether the header of a widget is shown by default. The selected wrapping format when placing a widget can override this choice.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is Cacheable&lt;/strong&gt; defines whether a widget&amp;#39;s output should be cached by the site. This should be enabled whenever possible, which includes when a widget is not Accessing-user-specific, or is user-specific but can be cached per user.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vary Cache by User&lt;/strong&gt; defines whether a cached widget should use the same output for every accessing user or a separate cached copy for each. A widget whose content is specific to the accessing user should vary cache by the user.&lt;/p&gt;
&lt;p&gt;To allow for easier styling of a widget from a theme, a widget can define its own unique &lt;strong&gt;CSS class&lt;/strong&gt; which is applied to its wrapping div element. CSS selectors can then be targeted to specific descendants of the class as follows&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.content-fragment.social-share h2 { color: red; }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Without defined &lt;strong&gt;available contexts&lt;/strong&gt;, a widget can be placed in any region on any page, header, or footer. With specified contexts, a widget can only be placed in certain regions dependent on the context. For example, a widget that only works when there is a current Blog Post in context would want to specify the &amp;#39;Blog Post&amp;#39; context. Multiple available contexts can be defined.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Main_Content_Script" name="Main_Content_Script"&gt;&lt;/a&gt;Main Content Script&lt;/h3&gt;
&lt;p&gt;Widget content is defined Using [[Using Velocity in Widgets|Velocity-templated markup]]. Along with all velocity directives, the entire Platform API is available to widget content script via Widget Extensions as documented in the [[api-documentation:Widget API Documentation|Widget API Documentation]].&lt;/p&gt;
&lt;h3&gt;&lt;a id="Configuration_Script" name="Configuration_Script"&gt;&lt;/a&gt;Configuration Script&lt;/h3&gt;
&lt;p&gt;Widget Configuration is defined with XML which specifies the [[Supporting Configuration|dynamic configuration]] fields available to the administrators that use and configure the widget.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Header_Script" name="Header_Script"&gt;&lt;/a&gt;Header Script&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Header Script&lt;/strong&gt; optionally declares velocity script which, when evaluated, generates the content displayed in a widget&amp;#39;s header. When not provided, a widget&amp;#39;s header will be equivalent to its title.&lt;/p&gt;
&lt;p&gt;A common pattern for Header Script when a widget&amp;#39;s title is configurable is to use the following configuration...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;property id=&amp;quot;Title&amp;quot; resourceName=&amp;quot;Property_Title&amp;quot; dataType=&amp;quot;String&amp;quot; defaultValue=&amp;quot;${resource:Widget_Title}&amp;quot; controlType=&amp;quot;Telligent.Evolution.Controls.ContentFragmentTokenStringControl, Telligent.Evolution.Controls&amp;quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;...and the following Header Script...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$core_v2_widget.ApplyTokens($core_v2_widget.GetStringValue(&amp;#39;Title&amp;#39;, &amp;#39;${resource:Widget_Title}&amp;#39;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows for the widget configuration to expose editing of the title while still supporting resource tokens.&lt;/p&gt;
&lt;h3&gt;&lt;a id="CSS_Script" name="CSS_Script"&gt;&lt;/a&gt;CSS Script&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;CSS Script&lt;/strong&gt; can be defined with [[Using Velocity in Widgets|Velocity script]] to dynamically define what CSS classes are applied to the widget&amp;#39;s wrapper.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Language_Resources" name="Language_Resources"&gt;&lt;/a&gt;Language Resources&lt;/h3&gt;
&lt;p&gt;Widgets can define all of their own resources for localization. Resources component allows for defining resources for each currently-enabled Language pack. Resources can be exported and imported independently of widgets when Managing Widgets.&lt;/p&gt;
&lt;p&gt;A defined resource can be referenced via widget script as:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$core_v2_language.GetResource(&amp;quot;resource_name&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a id="Attachments" name="Attachments"&gt;&lt;/a&gt;Attachments&lt;/h3&gt;
&lt;p&gt;Any file type can be &lt;strong&gt;attached&lt;/strong&gt; to a widget, including images, JavaScript, stylesheets, web fonts, and more. To attach files, select &lt;strong&gt;Upload Attachment&lt;/strong&gt; from the &lt;strong&gt;Widget Actions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Uploaded attachments that are known editable text formats including CSS, JavaScript, HTML, XML, and VM (velocity) are editable in Widget Studio. Other file types are previewed on their own component tabs.&lt;/p&gt;
&lt;h2&gt;&lt;a id="Advanced_User_Interface_Features" name="Advanced_User_Interface_Features"&gt;&lt;/a&gt;Advanced User Interface Features&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Keyboard_Shortcuts" name="Keyboard_Shortcuts"&gt;&lt;/a&gt;Keyboard Shortcuts&lt;/h3&gt;
&lt;p&gt;Widget Studio supports the following keyboard shortcuts&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CTRL + Q&lt;/strong&gt;: Quickly switch between previous and other tabs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + LEFT&lt;/strong&gt;: Switch one tab to the left&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + RIGHT&lt;/strong&gt;: Switch one tab to the right&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + CMD + LEFT&lt;/strong&gt;: Reposition current tab to the left&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + CMD + RIGHT&lt;/strong&gt;: Reposition current tab to the right&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + W&lt;/strong&gt;: Close the current tab&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + N&lt;/strong&gt;: New Widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + W&lt;/strong&gt;: Close other tabs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + R&lt;/strong&gt;: Reveal current tab in the tree&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + ,&lt;/strong&gt;: Search&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMD + P&lt;/strong&gt;: Publish the staged widget changes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMD + SHIFT + P&lt;/strong&gt;: Revert the staged widget changes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMD + O&lt;/strong&gt;: Preview the widget&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img style="border:1px solid #DDD;width:441px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6406.png" /&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Settings" name="Settings"&gt;&lt;/a&gt;Settings&lt;/h3&gt;
&lt;p&gt;The following settings are available in &lt;strong&gt;Settings&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Theme&lt;/strong&gt;: Syntax highlighting color scheme&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Show Gutter&lt;/strong&gt;: defines whether line numbers are shown&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Highlight Line&lt;/strong&gt;: defines whether the current line is displayed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Show invisibles&lt;/strong&gt;: defines whether non-visible characters such as tabs and line breaks are rendered&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/3806.png"&gt;&lt;img style="border:1px solid #DDD;width:523px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/3806.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Working with Widget Studio</title><link>https://community.telligent.com/community/11/w/developer-training/65088/working-with-widget-studio/revision/1</link><pubDate>Thu, 20 Jun 2019 20:13:47 GMT</pubDate><guid isPermaLink="false">666181cf-b84f-490b-a841-f56367207b3b</guid><dc:creator>Ben Tiedt</dc:creator><comments>https://community.telligent.com/community/11/w/developer-training/65088/working-with-widget-studio#comments</comments><description>Revision 1 posted to Developer Training by Ben Tiedt on 06/20/2019 20:13:47&lt;br /&gt;
&lt;p&gt;Widget Studio is an interface in the Administration UI which provides complete management and authorship of [[Widgets|widgets]] directly within Telligent Community. It is available by navigating to &lt;strong&gt;Administration &amp;gt; Interface &amp;gt; Widgets&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;[toc]&lt;/p&gt;
&lt;h2&gt;&lt;a id="When_would_I_use_Widget_Studio" name="When_would_I_use_Widget_Studio"&gt;&lt;/a&gt;When would I use Widget Studio?&lt;/h2&gt;
&lt;p&gt;Widget Studio is used for both widget management and widget authoring. Example uses include:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Widget management&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browsing widgets&lt;/li&gt;
&lt;li&gt;Importing widgets&lt;/li&gt;
&lt;li&gt;Exporting widgets&lt;/li&gt;
&lt;li&gt;Reviewing and publishing widget changes&lt;/li&gt;
&lt;li&gt;Importing and exporting of widget language resources&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Widget authoring&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Editing existing widgets&lt;/li&gt;
&lt;li&gt;Creating new widgets&lt;/li&gt;
&lt;li&gt;Comparing and live-previewing widget changes&lt;/li&gt;
&lt;li&gt;Reverting changed widgets&lt;/li&gt;
&lt;li&gt;Reviewing widget API documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a id="The_Interface" name="The_Interface"&gt;&lt;/a&gt;The Interface&lt;/h2&gt;
&lt;p&gt;It is helpful to understand the major components of the new Widget Studio interface before diving into management and authoring details.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/studio.png"&gt;&lt;img style="width:640px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/studio.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Browse_View" name="Browse_View"&gt;&lt;/a&gt;Browse View&lt;/h3&gt;
&lt;p&gt;The browse view on the left supports viewing the set of installed widgets.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Tree" name="Tree"&gt;&lt;/a&gt;Tree&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png"&gt;&lt;img style="width:471px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The tree lists both widgets as well as their [[Widgets|components]] such as content script, resources, and attachments. Widget nodes identify the widgets&amp;#39; [[Widgets|version and staging states]], including whether the widget is a customized default, fully custom, or themed. If the widget has staged changes, a yellow pencil indicator is shown.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Filtering" name="Filtering"&gt;&lt;/a&gt;Filtering&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/1121.png"&gt;&lt;img style="width:250px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/1121.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Widgets can be filtered by&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Widget Type:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;All&lt;/strong&gt;: All Widgets, excluding those provided by scripted plugins&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User Installed&lt;/strong&gt;: Widgets created or imported via Widget Studio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Default&lt;/strong&gt;: [[Widgets|Factory default widgets]] provided by the platform or [[Factory Default Widget Providers|third-party plugins]]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Edited Default&lt;/strong&gt;: Factory default widgets which have been customized with overrides in Widget Studio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Provider: Provider Name&lt;/strong&gt;: Widgets provided by specific [[Factory Default Widget Providers|factory default providers]], including scripted plugins.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Theme:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;any&lt;/strong&gt;: any theme version&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Theme Name&lt;/strong&gt;: widgets that have a [[Widgets|themed version]] specifically for the theme name selected&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Text search:
&lt;ul&gt;
&lt;li&gt;Text that matches the widget&amp;#39;s name, description, or attachment name&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a id="Browse_Actions" name="Browse_Actions"&gt;&lt;/a&gt;Browse Actions&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6366.png"&gt;&lt;img style="width:374px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6366.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Browse actions are available above the tree&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New&lt;/strong&gt;: Create a new widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Import&lt;/strong&gt;: Upload widgets or widget resources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-Select&lt;/strong&gt;: Toggle multi-selection of multiple widgets for export&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API Documentation&lt;/strong&gt;: View API Documentation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Settings&lt;/strong&gt;: Widget Studio settings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export All Widgets&lt;/strong&gt;: Exports all widgets that are available to view&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export All Resources&lt;/strong&gt;: Exports all resources, even from any widgets which aren&amp;#39;t available to view or edit&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a id="Widget_Actions" name="Widget_Actions"&gt;&lt;/a&gt;Widget Actions&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png"&gt;&lt;img style="width:471px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4152.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Widget actions are available alongside each widget node in the tree. These same actions are also available in widgets&amp;#39; edit views. The exact set of widget actions can very based on the state of the widget, and update automatically in response to widget state changes. Details about these actions are available within the &lt;strong&gt;Management&lt;/strong&gt; and &lt;strong&gt;Authoring&lt;/strong&gt; sections below&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Preview&lt;/strong&gt;: Live-preview the widget in the user interface&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Publish Staged Changes&lt;/strong&gt;: Publishes staged changes, if any exist&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Revert Staged Changes&lt;/strong&gt;: Reverts staged changes, if any exist&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add File&lt;/strong&gt;: Adds a new editable attachment to the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upload Attachment&lt;/strong&gt;: Uploads a new attachment of any type to the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Save as Copy&lt;/strong&gt;: Creates a new widget as a copy&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Save for Theme&lt;/strong&gt;: Creates a themed version of the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export Widget&lt;/strong&gt;: Exports the widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export Resources&lt;/strong&gt;: Exports the widget&amp;#39;s language resources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delete or Revert&lt;/strong&gt;: Deletes a custom widget or reverts a customized default to a factory default&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a id="Multi-selection" name="Multi-selection"&gt;&lt;/a&gt;Multi-selection&lt;/h4&gt;
&lt;p&gt;Multi-selection enables selecting multiple widgets for widget or resource export. Multi-selection is not as inclusive as the &lt;strong&gt;Export All Widgets&lt;/strong&gt; or &lt;strong&gt;Export All Resources&lt;/strong&gt; options, as some widgets may not be available for viewing or editing though their resources are still editable.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png"&gt;&lt;img style="width:250px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Staging_View" name="Staging_View"&gt;&lt;/a&gt;Staging View&lt;/h3&gt;
&lt;p&gt;When one or more widgets is staged, the staging view is shown.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png"&gt;&lt;img style="width:468px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When a widget is edited, (including everything from content script changes to just importing resource translations) the changes are staged. Staged changes are only visible to the user performing the change.&lt;/p&gt;
&lt;p&gt;Staged widgets can be published or reverted back to their non-staged state. Staged changes can also be viewed n the site with live updates as widgets change, only for the user making the change.&lt;/p&gt;
&lt;p&gt;The staging view lists all currently-staged widgets, along with actions to preview and publish or revert single widgets or all of them at once.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Tab_View" name="Tab_View"&gt;&lt;/a&gt;Tab View&lt;/h3&gt;
&lt;p&gt;Widget Studio supports viewing and editing multiple components from multiple widgets simultaneously. Each component is opened on its own tab, which the tab view navigates.&lt;/p&gt;
&lt;p&gt;Each tab lists the name of the widget, the component, its yellow staged state (if staged), with links to close the tab, close all other tabs, or reveal the staged component within the tree (if not already focused) for greater context.&lt;/p&gt;
&lt;p&gt;Tabs can be re-ordered via drag and drop, and tabs overflow into a dropdown revealing less used tabs.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6253.png"&gt;&lt;img style="width:640px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6253.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Editor_View" name="Editor_View"&gt;&lt;/a&gt;Editor View&lt;/h3&gt;
&lt;p&gt;The editor view area displays multiple types of editing experiences, depending on the component. Editor views could include [[Using Velocity in Widgets|Velocity script]], [[Supporting Configuration|Velocity script]], language resources, attachments, and more.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7610.png"&gt;&lt;img style="width:640px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/7610.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Component_Navigation_and_Actions" name="Component_Navigation_and_Actions"&gt;&lt;/a&gt;Component Navigation and Actions&lt;/h4&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/editor_2D00_header.png"&gt;&lt;img style="width:458px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/editor_2D00_header.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Each editor view identifies the widget&amp;#39;s &lt;strong&gt;theme&lt;/strong&gt; (if it has one), its &lt;strong&gt;name&lt;/strong&gt;, the &lt;strong&gt;component&lt;/strong&gt; being edited with links to all other components in the widget, and widget actions. Widget actions are the same as those available from the &lt;strong&gt;Browse View&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/2350.png"&gt;&lt;img style="width:368px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/2350.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Diffing" name="Diffing"&gt;&lt;/a&gt;Diffing&lt;/h4&gt;
&lt;p&gt;If a widget is staged, it is identified as such with a button to &lt;strong&gt;Compare Changes&lt;/strong&gt; with the current published version. If the widget is a customized default, another button is shown to &lt;strong&gt;Compare Changes&lt;/strong&gt; with the default.&lt;/p&gt;
&lt;p&gt;Selecting either &lt;strong&gt;Compare Changes&lt;/strong&gt; button will switch the editor view to comparison mode where the left side is the original and the right side is the edited version. For most editor views types, comparison view still allows editing while in comparison view.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png"&gt;&lt;img style="width:640px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When using the &lt;strong&gt;Compare Changes&lt;/strong&gt; tool on a Widget&amp;#39;s Overview, all components that have changes are highlighted in yellow.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png"&gt;&lt;img style="width:640px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Full_Screen_Editing" name="Full_Screen_Editing"&gt;&lt;/a&gt;Full Screen Editing&lt;/h4&gt;
&lt;p&gt;Most editor view types support being edited in full screen. Select &lt;strong&gt;Full Screen&lt;/strong&gt; to toggle.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6443.png"&gt;&lt;img style="width:80px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6443.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/6114.png"&gt;&lt;img style="width:640px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6114.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a id="Managing_Widgets" name="Managing_Widgets"&gt;&lt;/a&gt;Managing Widgets&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Browsing_Widgets" name="Browsing_Widgets"&gt;&lt;/a&gt;Browsing Widgets&lt;/h3&gt;
&lt;h3&gt;&lt;a id="Importing_Widgets" name="Importing_Widgets"&gt;&lt;/a&gt;Importing Widgets&lt;/h3&gt;
&lt;p&gt;Widgets can be installed from widget export files by selecting the &lt;strong&gt;Import&lt;/strong&gt; button in the &lt;strong&gt;Browse View&lt;/strong&gt;. A single widget export file can be selected (which can potentially contain multiple widgets). A confirmation will be shown before import like the following. Note that widgets that are either new or updated are identified as such with the option to not import them.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/1351.png"&gt;&lt;img style="width:519px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/1351.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Imported widgets are imported to a staged, non-published, state&lt;/strong&gt;, the same as if the widgets had been edited directly within Widget Studio. This allows for further review of changes and differences using the &lt;strong&gt;Compare&lt;/strong&gt; tools in editor views prior to eventually selecting &lt;strong&gt;publish&lt;/strong&gt; or &lt;strong&gt;revert&lt;/strong&gt;. Thanks to staging, importing is a safe action which does not affect the published user interface, and can be fully reverted instead of published.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png"&gt;&lt;img style="width:470px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once published, imported widget updates install either as custom defaults (if there was a default version) or as a new version of the existing custom widget, overwriting the previous.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Exporting_Widgets" name="Exporting_Widgets"&gt;&lt;/a&gt;Exporting Widgets&lt;/h3&gt;
&lt;p&gt;Any widget, whether &lt;strong&gt;Factory Default&lt;/strong&gt; or &lt;strong&gt;Custom&lt;/strong&gt;, can be exported. A widget export includes widgets&amp;#39; script, configuration, attachments, and resources. A single export file can contain multiple widgets.&lt;/p&gt;
&lt;p&gt;To produce a widget export select Export Widget from a widget&amp;#39;s actions in the Tree View or any of the widget&amp;#39;s components&amp;#39; edit views. Alternatively, multiple widgets can be exported in a single file by entering multi-select mode in the Browse View, checking widget checkboxes, and then selecting &lt;em&gt;Export Selected Widgets&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png"&gt;&lt;img style="width:250px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/0334.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Publishing_or_Reverting_Staged_Changes" name="Publishing_or_Reverting_Staged_Changes"&gt;&lt;/a&gt;Publishing or Reverting Staged Changes&lt;/h3&gt;
&lt;p&gt;Staged changes can be published or reverted using &lt;strong&gt;Widget Actions&lt;/strong&gt; in the Browse View, editor view, or in the &lt;strong&gt;Staging View&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png"&gt;&lt;img style="width:470px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4571.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Deleting_or_Reverting_changes_to_Widgets" name="Deleting_or_Reverting_changes_to_Widgets"&gt;&lt;/a&gt;Deleting or Reverting changes to Widgets&lt;/h3&gt;
&lt;p&gt;Custom widgets can be fully deleted. Factory defaults cannot be deleted, but customized versions of factory defaults can be reverted back to their original.&lt;/p&gt;
&lt;p&gt;To delete or revert a widget (depending on its type), select &lt;strong&gt;Delete&lt;/strong&gt; or &lt;strong&gt;Revert&lt;/strong&gt; from &lt;strong&gt;Widget Actions&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Importing_and_exporting_Language_Resources" name="Importing_and_exporting_Language_Resources"&gt;&lt;/a&gt;Importing and exporting Language Resources&lt;/h3&gt;
&lt;p&gt;Widget exports include all language resources used by those widgets. Widget Studio also supports exporting and importing only the language resources for widgets.&lt;/p&gt;
&lt;p&gt;To export a widget language resources, select &lt;strong&gt;Export Resources&lt;/strong&gt; from &lt;strong&gt;Widget Actions&lt;/strong&gt;. Alternatively, multi-select mode can be used export multiple widgets&amp;#39; resources.&lt;/p&gt;
&lt;p&gt;To translate all widget-based user interfaces in the Community, use &lt;strong&gt;Export All Resources&lt;/strong&gt;, as some widgets may not be available for viewing, editing, or multi-selection.&lt;/p&gt;
&lt;h2&gt;&lt;a id="Authoring_Widgets" name="Authoring_Widgets"&gt;&lt;/a&gt;Authoring Widgets&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Editing_Widgets" name="Editing_Widgets"&gt;&lt;/a&gt;Editing Widgets&lt;/h3&gt;
&lt;h4&gt;&lt;a id="Editing_and_Saving" name="Editing_and_Saving"&gt;&lt;/a&gt;Editing and Saving&lt;/h4&gt;
&lt;p&gt;To edit a widget, navigate to one of its components in the tree view. All changes are automatically saved to staging. Staged widgets can be used and configured on the site by the developer, but are not publicly available until publishing.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Comparing_Changes" name="Comparing_Changes"&gt;&lt;/a&gt;Comparing Changes&lt;/h4&gt;
&lt;p&gt;As widgets are edited, staged changes can be compared with the non-staged by selecting &lt;strong&gt;Compare Changes&lt;/strong&gt;. For most widget component views, edits can continue to be made while in comparison view.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png"&gt;&lt;img style="width:640px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/4375.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png"&gt;&lt;img style="width:640px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/7026.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a id="Previewing_Changes" name="Previewing_Changes"&gt;&lt;/a&gt;Previewing Changes&lt;/h4&gt;
&lt;p&gt;Widgets can be previewed by selecting &lt;strong&gt;Preview&lt;/strong&gt; in &lt;strong&gt;Widget Actions&lt;/strong&gt;. If the widget is currently in use, a new browser window will be opened to a page using the widget, pre-loaded to &lt;strong&gt;Preview&lt;/strong&gt; mode. Preview mode renders the widget&amp;#39;s staged version, automatically refreshing the host page as widget changes continue to be saved.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Publishing_or_Reverting_Staged_Changes" name="Publishing_or_Reverting_Staged_Changes"&gt;&lt;/a&gt;Publishing or Reverting Staged Changes&lt;/h4&gt;
&lt;p&gt;Staged changes can be published or reverted using &lt;strong&gt;Widget Actions&lt;/strong&gt; in the Browse View, editor view, or in the &lt;strong&gt;Staging View&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png"&gt;&lt;img style="width:468px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/staging.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Creating_new_Widgets" name="Creating_new_Widgets"&gt;&lt;/a&gt;Creating new Widgets&lt;/h3&gt;
&lt;h4&gt;&lt;a id="Creating_a_new_Widget" name="Creating_a_new_Widget"&gt;&lt;/a&gt;Creating a new Widget&lt;/h4&gt;
&lt;p&gt;To create a new Widget, select &lt;strong&gt;New Widget&lt;/strong&gt; in the Browse View. While widget changes are automatically saved, new widgets are not created until at least one field is edited. If not provided, widget names are automatically provided. As with all edits, new widgets are saved into staging. Staged widgets can be used and configured on the site by the developer, but are not publicly available until publishing.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Branching_a_widget_to_a_theme-specific_version" name="Branching_a_widget_to_a_theme-specific_version"&gt;&lt;/a&gt;Branching a widget to a theme-specific version&lt;/h4&gt;
&lt;p&gt;By default, a given Widget functions identically in any theme. A theme-specific Widget is only used when that theme is selected. A theme-specific widget defines its own complete set of content, configuration, attachments, and resources and can potentially vary significantly in implementation from its base.&lt;/p&gt;
&lt;p&gt;To create a theme-specific version, select &lt;strong&gt;Save for Theme&lt;/strong&gt; in &lt;strong&gt;Widget Actions&lt;/strong&gt;. Widget Studio will prompt for which theme to save against before staging a themed variant.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Branching_a_widget_to_a_new_separate_widget" name="Branching_a_widget_to_a_new_separate_widget"&gt;&lt;/a&gt;Branching a widget to a new, separate, widget&lt;/h4&gt;
&lt;p&gt;To save a copy of a widget as a new, separate, widget that does not overwrite the original, select &lt;strong&gt;Save as Copy&lt;/strong&gt; from &lt;strong&gt;Widget Actions&lt;/strong&gt;. The new widget will be staged with a copy of the source widget&amp;#39;s content, configuration, attachments, and resources and will not affect existing usages of the source widget.&lt;/p&gt;
&lt;h4&gt;&lt;a id="Deleting_or_Reverting_a_widget" name="Deleting_or_Reverting_a_widget"&gt;&lt;/a&gt;Deleting or Reverting a widget&lt;/h4&gt;
&lt;p&gt;A widget which was imported or created via the Widget Studio can be deleted, but not reverted. A Factory Default widget can be neither deleted nor reverted. However, a customized version of a factory default (a factory default which has been &amp;quot;saved&amp;quot; against through Widget Studio) can be reverted back to its original Factory Default state. The type of widget being viewed determines whether a &lt;strong&gt;Delete&lt;/strong&gt; or &lt;strong&gt;Revert&lt;/strong&gt; button is presented.&lt;/p&gt;
&lt;h2&gt;&lt;a id="Widget_Components_Definitions" name="Widget_Components_Definitions"&gt;&lt;/a&gt;Widget Components Definitions&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Overview" name="Overview"&gt;&lt;/a&gt;Overview&lt;/h3&gt;
&lt;p&gt;Both &lt;strong&gt;Name&lt;/strong&gt; and &lt;strong&gt;Description&lt;/strong&gt; support resource tokens to allow for localized names. So, if a widget is titled &amp;quot;Hello World&amp;quot;, &amp;quot;Hello World&amp;quot; can optionally be defined as a resource named &lt;code&gt;title_hello_world&lt;/code&gt; and the &amp;#39;Name&amp;#39; field for the widget can contain &lt;code&gt;${resource:title_hello_world}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Show Header by Default&lt;/strong&gt; defines whether the header of a widget is shown by default. The selected wrapping format when placing a widget can override this choice.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is Cacheable&lt;/strong&gt; defines whether a widget&amp;#39;s output should be cached by the site. This should be enabled whenever possible, which includes when a widget is not Accessing-user-specific, or is user-specific but can be cached per user.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vary Cache by User&lt;/strong&gt; defines whether a cached widget should use the same output for every accessing user or a separate cached copy for each. A widget whose content is specific to the accessing user should vary cache by the user.&lt;/p&gt;
&lt;p&gt;To allow for easier styling of a widget from a theme, a widget can define its own unique &lt;strong&gt;CSS class&lt;/strong&gt; which is applied to its wrapping div element. CSS selectors can then be targeted to specific descendants of the class as follows&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.content-fragment.social-share h2 { color: red; }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Without defined &lt;strong&gt;available contexts&lt;/strong&gt;, a widget can be placed in any region on any page, header, or footer. With specified contexts, a widget can only be placed in certain regions dependent on the context. For example, a widget that only works when there is a current Blog Post in context would want to specify the &amp;#39;Blog Post&amp;#39; context. Multiple available contexts can be defined.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Main_Content_Script" name="Main_Content_Script"&gt;&lt;/a&gt;Main Content Script&lt;/h3&gt;
&lt;p&gt;Widget content is defined Using [[Using Velocity in Widgets|Velocity-templated markup]]. Along with all velocity directives, the entire Platform API is available to widget content script via Widget Extensions as documented in the [[api-documentation:Widget API Documentation|Widget API Documentation]].&lt;/p&gt;
&lt;h3&gt;&lt;a id="Configuration_Script" name="Configuration_Script"&gt;&lt;/a&gt;Configuration Script&lt;/h3&gt;
&lt;p&gt;Widget Configuration is defined with XML which specifies the [[Supporting Configuration|dynamic configuration]] fields available to the administrators that use and configure the widget.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Header_Script" name="Header_Script"&gt;&lt;/a&gt;Header Script&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Header Script&lt;/strong&gt; optionally declares velocity script which, when evaluated, generates the content displayed in a widget&amp;#39;s header. When not provided, a widget&amp;#39;s header will be equivalent to its title.&lt;/p&gt;
&lt;p&gt;A common pattern for Header Script when a widget&amp;#39;s title is configurable is to use the following configuration...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;property id=&amp;quot;Title&amp;quot; resourceName=&amp;quot;Property_Title&amp;quot; dataType=&amp;quot;String&amp;quot; defaultValue=&amp;quot;${resource:Widget_Title}&amp;quot; controlType=&amp;quot;Telligent.Evolution.Controls.ContentFragmentTokenStringControl, Telligent.Evolution.Controls&amp;quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;...and the following Header Script...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$core_v2_widget.ApplyTokens($core_v2_widget.GetStringValue(&amp;#39;Title&amp;#39;, &amp;#39;${resource:Widget_Title}&amp;#39;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows for the widget configuration to expose editing of the title while still supporting resource tokens.&lt;/p&gt;
&lt;h3&gt;&lt;a id="CSS_Script" name="CSS_Script"&gt;&lt;/a&gt;CSS Script&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;CSS Script&lt;/strong&gt; can be defined with [[Using Velocity in Widgets|Velocity script]] to dynamically define what CSS classes are applied to the widget&amp;#39;s wrapper.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Language_Resources" name="Language_Resources"&gt;&lt;/a&gt;Language Resources&lt;/h3&gt;
&lt;p&gt;Widgets can define all of their own resources for localization. Resources component allows for defining resources for each currently-enabled Language pack. Resources can be exported and imported independently of widgets when Managing Widgets.&lt;/p&gt;
&lt;p&gt;A defined resource can be referenced via widget script as:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$core_v2_language.GetResource(&amp;quot;resource_name&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a id="Attachments" name="Attachments"&gt;&lt;/a&gt;Attachments&lt;/h3&gt;
&lt;p&gt;Any file type can be &lt;strong&gt;attached&lt;/strong&gt; to a widget, including images, JavaScript, stylesheets, web fonts, and more. To attach files, select &lt;strong&gt;Upload Attachment&lt;/strong&gt; from the &lt;strong&gt;Widget Actions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Uploaded attachments that are known editable text formats including CSS, JavaScript, HTML, XML, and VM (velocity) are editable in Widget Studio. Other file types are previewed on their own component tabs.&lt;/p&gt;
&lt;h2&gt;&lt;a id="Advanced_User_Interface_Features" name="Advanced_User_Interface_Features"&gt;&lt;/a&gt;Advanced User Interface Features&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Keyboard_Shortcuts" name="Keyboard_Shortcuts"&gt;&lt;/a&gt;Keyboard Shortcuts&lt;/h3&gt;
&lt;p&gt;Widget Studio supports the following keyboard shortcuts&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CTRL + Q&lt;/strong&gt;: Quickly switch between previous and other tabs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + LEFT&lt;/strong&gt;: Switch one tab to the left&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + RIGHT&lt;/strong&gt;: Switch one tab to the right&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + CMD + LEFT&lt;/strong&gt;: Reposition current tab to the left&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + CMD + RIGHT&lt;/strong&gt;: Reposition current tab to the right&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + W&lt;/strong&gt;: Close the current tab&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + N&lt;/strong&gt;: New Widget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + SHIFT + W&lt;/strong&gt;: Close other tabs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + R&lt;/strong&gt;: Reveal current tab in the tree&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CTRL + ,&lt;/strong&gt;: Search&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMD + P&lt;/strong&gt;: Publish the staged widget changes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMD + SHIFT + P&lt;/strong&gt;: Revert the staged widget changes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMD + O&lt;/strong&gt;: Preview the widget&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img style="width:441px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/6406.png" alt=" " /&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Settings" name="Settings"&gt;&lt;/a&gt;Settings&lt;/h3&gt;
&lt;p&gt;The following settings are available in &lt;strong&gt;Settings&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Theme&lt;/strong&gt;: Syntax highlighting color scheme&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Show Gutter&lt;/strong&gt;: defines whether line numbers are shown&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Highlight Line&lt;/strong&gt;: defines whether the current line is displayed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Show invisibles&lt;/strong&gt;: defines whether non-visible characters such as tabs and line breaks are rendered&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/3806.png"&gt;&lt;img style="width:523px;border:1px solid #DDD;" src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/3806.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>