/o//commerce-media/accounts/-1/images/18526258?download=true

angular portlet seed
Analytics and Optimization
18526211
Descripción
Demo portlet for demonstration of AngularJS implementation environment, making build with grunt and maven, tests with karma.
For better understanding download portlet's sources.
Demo portlet for demonstration of AngularJS implementation environment, making build with grunt and maven, tests with karma.
For better understanding download portlet's sources.
DEVELOPER

Desarrollador


Publisher Date

January 23, 2024


Deployment Method

Liferay Self-Hosted

Liferay PaaS


App Type

DXP

Versión

0.0.1.0

Versiones compatibles

6.2

Standard Price

Free

Help and Support


Compartir enlace

DEVELOPER
21/11/24 18:01
Published date
21/11/24 18:01
Published Date
21/11/24 18:01
SUPPORTED OFFERINGS
Liferay PaaS
Supported Versions
6.2
Resource Requirements
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> channel.items  [in template "3192443#3192485#null" at line 18, column 30]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign channelId = channel.items[0].id  [in template "3192443#3192485#null" at line 18, column 9]
----
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	specifications = product.productSpecifications![] 
28/> 
29 
30<div> 
31	<#if specifications?has_content> 
32 
33		<#assign 
34			specificationCPUs = specifications?filter(item -> stringUtil.equals(item.specificationKey, "cpu")) 
35			specificationRAMs = specifications?filter(item -> stringUtil.equals(item.specificationKey, "ram")) 
36			 cpuQuantity = "" 
37				  memoryQuantity = "" 
38		/> 
39 
40		<#if specificationCPUs?has_content> 
41		 	<#list specificationCPUs as cpu> 
42				<#assign cpuQuantity = cpu.value /> 
43 
44				<#if cpuQuantity?has_content> 
45					${cpuQuantity} 
46					<#if cpuQuantity?eval gt 1> 
47						CPUS 
48					</#if> 
49 
50					<#if cpuQuantity?eval lt 2> 
51						CPU 
52					</#if> 
53				</#if> 
54		  	</#list> 
55		</#if> 
56 
57		<#if specificationRAMs?has_content> 
58		  	<#list specificationRAMs as ram> 
59				<#assign memoryQuantity = ram.value /> 
60 
61				<#if cpuQuantity?has_content && memoryQuantity?has_content >, </#if> 
62 
63				<#assign memoryQuantity = ram.value /> 
64 
65				<#if memoryQuantity?has_content> 
66					${memoryQuantity} GB RAM 
67				</#if> 
68		  	</#list> 
69		</#if> 
70	</#if> 
71</div> 
Edition
Community
PRICE
Free
help & support
SHARE LINK
Copy & Share

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.