Vue combinée Vue Plate Arborescence
Sujets [ Précédent | Suivant ]
toggle
Soukaina HAJI
Refresh portlet ( asset publisher )
25 août 2014 03:58
Réponse

Soukaina HAJI

Rang: Regular Member

Publications: 196

Date d'inscription: 17 juin 2014

Publications Récentes

Hello
I need to refresh a portlet (asset publisher ) every 5 minutes

Liferay 6.2 ce ga2

Thank you
David H Nebinger
RE: Refresh portlet ( asset publisher )
25 août 2014 05:41
Réponse

David H Nebinger

Community Moderator

Rang: Liferay Legend

Publications: 11108

Date d'inscription: 1 septembre 2006

Publications Récentes

javascript.
Soukaina HAJI
RE: Refresh portlet ( asset publisher )
25 août 2014 05:46
Réponse

Soukaina HAJI

Rang: Regular Member

Publications: 196

Date d'inscription: 17 juin 2014

Publications Récentes

I know It would be some script in javascript or alloyUi ...
I think I found this file add_asset_redirect.jsp which contain the script to refresh the portlet :

 1
 2<%
 3String redirect = request.getParameter("redirect");
 4
 5redirect = PortalUtil.escapeRedirect(redirect);
 6
 7Portlet selPortlet = PortletLocalServiceUtil.getPortletById(company.getCompanyId(), portletDisplay.getId());
 8%>
 9<aui:script use="aui-base">
10    Liferay.fire(
11        'closeWindow',
12        {
13            id: '<portlet:namespace />editAsset',
14            portletAjaxable: <%= selPortlet.isAjaxable() %>,
15
16            <c:choose>
17                <c:when test="<%= redirect != null %>">
18                    redirect: '<%= HtmlUtil.escapeJS(redirect) %>'
19                </c:when>
20                <c:otherwise>
21                    refresh: '<%= portletDisplay.getId() %>'
22                </c:otherwise>
23            </c:choose>
24        }
25    );
26</aui:script>


So I inserted a timer in there but it doesnt work :

 1<%
 2String redirect = request.getParameter("redirect");
 3
 4redirect = PortalUtil.escapeRedirect(redirect);
 5
 6Portlet selPortlet = PortletLocalServiceUtil.getPortletById(company.getCompanyId(), portletDisplay.getId());
 7%>
 8
 9<aui:script use="aui-base">
10YUI().use("console", "console-filters", "substitute", "node-event-simulate",
11   function(Y) {
12
13     var doSomething = function(e) {
14            id: '<portlet:namespace />editAsset',
15            portletAjaxable: <%= selPortlet.isAjaxable() %>,
16
17            <c:choose>
18                <c:when test="<%= redirect != null %>">
19                    redirect: '<%= HtmlUtil.escapeJS(redirect) %>'
20                </c:when>
21                <c:otherwise>
22                    refresh: '<%= portletDisplay.getId() %>'
23                </c:otherwise>
24            </c:choose>
25        }
26     };
27
28     IntervalId = setInterval(doSomething, 1000);
29 });
30</aui:script>


thank you
David H Nebinger
RE: Refresh portlet ( asset publisher )
25 août 2014 06:07
Réponse

David H Nebinger

Community Moderator

Rang: Liferay Legend

Publications: 11108

Date d'inscription: 1 septembre 2006

Publications Récentes

have you set a breakpoint inside of the script to see if the timer's working? And why throw YUI into the mix, I think you should stick with AUI.
Soukaina HAJI
RE: Refresh portlet ( asset publisher )
25 août 2014 09:11
Réponse

Soukaina HAJI

Rang: Regular Member

Publications: 196

Date d'inscription: 17 juin 2014

Publications Récentes

The solution:

Step1 : Go to "Admin" > "site administration" > "Private pages" >
Step 2 : Insert the following script in Javascript" in the right side:

1function refreshPortlet(){
2          Liferay.Portlet.refresh('.portlet-asset-publisher');
3           setInterval(refreshPortlet, 300000);
4}
5refreshPortlet();



Hope it helps