Forums

Home » Liferay Portal » English » 3. Development

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Kamesh Sampath
Portlet Namespace and jQuery
July 15, 2011 2:11 PM
Answer

Kamesh Sampath

Rank: Regular Member

Posts: 159

Join Date: May 26, 2010

Recent Posts

Hi,

I am facing a peculiar issue with <portlet:namespace/> when used with jQuery, i followed the blog by Jonas, but quiet strangely my jQuery Javascript method is not picked up emoticon

 1 <aui:button id="<portlet:namespace />cmdLookupTemplate" data="<%= data %>" value="select" />
 2<script type="text/javascript">
 3jQuery(document)
 4        .ready(
 5                function() {
 6                    jQuery('#<portlet:namespace />cmdLookupTemplate')
 7                            .click(
 8                                    function() {
 9                                        var popup = window
10                                                .open(
11                                                        'http://www.liferay.com',
12                                                        'Select Template',
13                                                        'directories=no,height=640,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no,width=680');
14
15                                        popup.focus();
16                                    });
17
18                });
19</script>

Can anyone let me know if I am missing anything ? and also is there anyway where we could use <portlet:namespace> in a Javascript file that will be included using <header-portlet-javascript/>

Thanks
Kamesh
Kamesh Sampath
RE: Portlet Namespace and jQuery
July 15, 2011 2:44 PM
Answer

Kamesh Sampath

Rank: Regular Member

Posts: 159

Join Date: May 26, 2010

Recent Posts

got it solved, there was some browser cache issue and after i refreshed i worked.

Also i observed couple of things which might be useful for the community,
  • for aui:input tags id vlaues are automatically prefiexed with <portlet:namespace/>
  • for <aui:buttons we need to prefix the id atribute with portlet:namespace


Some correct me if my understanding is wrong.

Here is that working piece of code

 1
 2....
 3<aui:input cssClass="lfr-input-text-container"
 4                inlineField="<%= true %>" id="template-name"
 5                name="template-name" size="55" type="text" />
 6            <%
 7                long dlScopeGroupId = groupId;
 8                        
 9                        if (liveGroup.isStaged()
10                            && !liveGroup.isStagedRemotely()
11                            && !liveGroup
12                                .isStagedPortlet(PortletKeys.DOCUMENT_LIBRARY)) {
13                        dlScopeGroupId = liveGroup.getGroupId();
14                        }
15            %>
16
17            <liferay-portlet:renderURL portletName="15"
18                windowState="<%= LiferayWindowState.POP_UP.toString() %>"
19                var="selectDLURL">
20                <liferay-portlet:param name="struts_action"
21                    value="/journal/select_document_library" />
22                <liferay-portlet:param name="currentURL" value="<%= currentURL%>" />
23                <liferay-portlet:param name="groupId"
24                    value="<%= String.valueOf(dlScopeGroupId) %>" />
25            </liferay-portlet:renderURL>       
26            
27            <%
28                Map<String, Object> data = new HashMap<String, Object>();
29                        data.put("DocumentlibraryUrl", selectDLURL);
30            %>
31            
32            <aui:button id="<portlet:namespace />cmdLookupTemplate" name="cmdLookupTemplate" cssClass="journal-documentlibrary-button"
33                data="<%= data %>" value="select" />
34         
35    </aui:fieldset>
36
37    <aui:button-row>
38        <aui:button name="setButton" type="submit" value="set-button" />
39    </aui:button-row>
40</aui:form>
41
42<script type="text/javascript">
43var <portlet:namespace/>popup;
44var _15_selectDocumentLibrary;
45jQuery(document)
46        .ready(
47                function() {
48                   
49                    jQuery('#<portlet:namespace/>cmdLookupTemplate')
50                            .click(
51                                    function() {
52                                        <portlet:namespace/>popup = window
53                                                .open(
54                                                        jQuery("#<portlet:namespace/>cmdLookupTemplate").attr('data-documentlibraryurl'),
55                                                        'Select Template',                                                        'directories=no,height=640,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no,width=680');
56
57                                        <portlet:namespace/>popup.focus();
58                                    });
59                   
60                    _15_selectDocumentLibrary=function(url){
61                          <portlet:namespace/>popup.close();
62                           //alert("Selected document"+url);
63                           jQuery("#<portlet:namespace/>template-name").val(url);
64                        };   
65                });
66               
67            
68</script>

Thanks.
Kamesh