/o//commerce-media/accounts/-1/images/18474630?download=true
The Vaadin 7 Control Panel centralizes management of the shared
Vaadin 7 environment.
The Vaadin 7 Control Panel features:
* Overview page summarizes all details of the shared Vaadin
environment including the version of Vaadin, the add ons included in
the widgetset compile and the date/time when the widget set was compiled.
* An "About Vaadin" page defines common Vaadin
terminology to help those new to the Vaadin ecosystem.
* Easy upgrade to a new version of Vaadin (including the 7.3
line), even when server is blocked from general internet access (via
manual upload).
* During the upgrade, all Vaadin portlets are updated (if setting
is used) to the same version of Vaadin being deployed. This will allow
for a Vaadin upgrade but not redeploy all Vaadin portlets to benefit
from the upgrade.
* Easy upload and integration of Vaadin Add-Ons (no more EXT
plugin deployment or manual jar dropping).
* Create and edit custom Vaadin themes in the control panel,
including import and export capability. This allows for a theme to be
created in one environment and migrated to other environments (such as
code promotion from dev->test->qa->prod or deploying to all
nodes in a cluster).
* Settings to control how the control panel works, including
settings to increase memory allocation for compiling widget sets and
themes (necessary when there are a lot of add ons included in the
widget set builds).
* Detailed output for the upgrade process, the theme compilation
process, and the widget set compilation process.
* When deployed, if Vaadin 6 is present in Liferay it will be
purged and replaced with Vaadin 7.2.7 from the control panel.
* The Vaadin 7 Control Panel supports I18N, although currently
the only supplied language bundle is English (please contact
support@vaadinonliferay.com to submit a language bundle).
There is a service tier provided by
vaadin7-control-panel-portlet-service-1.0.0.0.jar. This service tier
allows Vaadin 7 portlets the ability to check the installed version of
Vaadin 7, determine if the Valo theme is available, list all installed
add ons and themes, etc.
Additionally Vaadin 7 plugins can take advantage of the service
tier to support hot deploy of Vaadin add ons and themes. This will
allow, for example, MarketPlace Vaadin 7 plugins that ship with
necessary dependent add ons and/or themes, will allow a Vaadin 7
plugin deployment to the nodes of a cluster with all dependent add
ons/themes without having to manually deploy via the control panel,
and it will allow for Vaadin 7 plugin promotion
(dev->test->qa->prod) to include dependent add ons/themes
without requiring manual deployments before hand.
NOTE:
When deployed, the Vaadin 7 Control Panel will purge Vaadin 6
from Liferay if it is still there (because Vaadin 6 and Vaadin 7
cannot coexist in the shared environment), but sometimes this can
cause problems for the application container. You should restart the
Liferay environment after deploying the Vaadin 7 Control Panel.
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> publisePages [in template "3192443#3192485#null" at line 36, column 38] ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign publisePage = publisePages.items [in template "3192443#3192485#null" at line 36, column 17] ----
1<#if themeDisplay?has_content>
2 <#assign scopeGroupId = themeDisplay.getScopeGroupId() />
3</#if>
4
5<#if currentURL?has_content>
6 <#if currentURL?contains('web')>
7 <#assign
8 index = 2
9 partsUrl = currentURL?split('/')
10 siteName = partsUrl[index..index]?join('/')
11 />
12 </#if>
13</#if>
14
15<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") />
16
17<#if channel?has_content>
18 <#assign channelId = channel.items[0].id />
19</#if>
20
21<#if (CPDefinition_cProductId.getData())??>
22 <#assign productId = CPDefinition_cProductId.getData() />
23</#if>
24
25<#assign
26 product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&nestedFields=productSpecifications")
27 productSpecifications = product.productSpecifications![]
28 catalogName=product.catalogName
29/>
30
31<#if catalogName?has_content>
32 <#assign publisePages=restClient.get("/c/publisherdetailses?filter=publisherName eq '${catalogName}'" ) />
33 <#assign redirectPath="https://marketplace.liferay.com/e/publisher-details/29282497"/>
34
35 <#if publisePages?has_content>
36 <#assign publisePage=publisePages.items />
37 <#if publisePage?has_content>
38 <#assign publisherDetail=publisePage[0]/>
39 </#if>
40 </#if>
41</#if>
42
43<div>
44 <#if productSpecifications?has_content>
45 <#assign developerNames = productSpecifications?filter(item -> stringUtil.equals(item.specificationKey, "developer-name")) />
46
47 <#if developerNames?has_content>
48 <#list developerNames as developerName>
49 <#if publisherDetail?has_content>
50 <a class="bg-neutral-8" href="${redirectPath}/${publisherDetail.id}">
51 ${developerName.value}
52 </a>
53 <#else>
54 <a class="bg-neutral-8" href="/?developer-name=${developerName.value}">
55 ${developerName.value}
56 </a>
57 </#if>
58 </#list>
59 </#if>
60 </#if>
61</div>
HTML Example
A paragraph is a self-contained unit of a discourse in writing dealing with a particular point or idea. Paragraphs are usually an expected part of formal writing, used to organize longer prose.