how to display text box value in aui popup in liferay? - liferay

in this jsp i have displayed the popup when i click it on button using aui.. i want to display the text box value when i click it on the popup box can any one help me?.i dont know how to use pop.
<%# taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<div id="a">
<aui:input lable="enter name" name="name" type="text"></aui:input>
</div>
<div id="b">
<aui:button name="hello" value="click me" onclick='callPopup()'></aui:button>
</div>
<aui:script >
function callPopup(){
AUI().ready('aui-dialog', 'aui-overlay-manager', 'dd-constrain', function(A) {
alert('hai sudheer');
var dialog = new A.Dialog({
title: 'DISPLAY CONTENT',
centered: true,
modal: true,
draggable:true,
width: 300,
height: 300,
closeOnOutsideClick: true,
bodyContent: "This is testing content inside the popup"
}).render();
});
}
</aui:script >

<%# taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<%# taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
<aui:input lable="enter name" name="name" type="text" id="b"></aui:input>
<div id="a">
<aui:button name="hello" value="click me" onclick='callPopup()'></aui:button>
</div>
<portlet:namespace/>
<aui:script >
function callPopup(){
AUI().ready('aui-dialog', 'aui-overlay-manager', 'dd-constrain', function(A) {
var name = document.getElementById("_popexample_WAR_popupexampleportlet_b").value;
var sudheer="hai"+name;
alert('hai sudheer'+name);
var dialog = new A.Dialog({
title: 'DISPLAY CONTENT',
centered: true,
modal: true,
draggable:true,
width: 300,
height: 300,
bodyContent: sudheer
}).render();
});
}
</aui:script >
its working fine....tested...thanks

Related

Onsen ui alert dialog get value from input tag and how to close dialog

I have a problem with the input text on onsen alert dialog
when I click OK button dialog not hide
how to get password value from dialog input tag
<ons-button modifier="tappable" onclick="
ons.createAlertDialog('alert.html').then(function(alertDialog) {
alertDialog.show();
});
"
>Test2</ons-button>
<script type="text/ons-template" id="alert.html">
<ons-alert-dialog animation="default" cancelable>
<div class="alert-dialog-title">Warning!</div>
<div class="alert-dialog-content">
<input id="password" ng-model="password" class="text-input " type="number"
pattern="[0-9]*" inputmode="numeric" placeholder="password" value="" autofocus>
</div>
<div class="alert-dialog-footer">
<button class="alert-dialog-button" onclick="alertDialog.hide()">OK</button>
</div>
</ons-alert-dialog>
</script>
You will need to add your data to a global variable or push it to the factory as it appears you are using Angular.
Also, you need to register your dialogue to a controller / variable as well so you can close it. The demo on the tutorial site is for vanilla right now, but the concept is the same.
Here is how this works: http://tutorial.onsen.io/?framework=vanilla&category=Reference&module=dialog
JS:
var showDialog = function(id) {
document
.getElementById(id)
.show();
};
var hideDialog = function(id) {
document
.getElementById(id)
.hide();
};
var fromTemplate = function() {
var dialog = document.getElementById('dialog-3');
if (dialog) {
dialog.show();
}
else {
ons.createDialog('dialog.html')
.then(function(dialog) {
dialog.show();
});
}
};
Markup:
<ons-page>
<ons-toolbar>
<div class="center">Dialogs</div>
</ons-toolbar>
<ons-list>
<ons-list-header>Showing dialogs</ons-list-header>
<ons-list-item tappable onclick="showDialog('dialog-1')">Simple dialog</ons-list-item>
<ons-list-item tappable onclick="showDialog('dialog-2')">Alert dialog</ons-list-item>
<ons-list-item tappable onclick="fromTemplate()">From template</ons-list-item>
<ons-list-header>Notifications</ons-list-header>
<ons-list-item tappable onclick="ons.notification.alert('Hello, world')">Alert</ons-list-item>
<ons-list-item tappable onclick="ons.notification.confirm({message: 'Are you ready?'})">Confirmation</ons-list-item>
<ons-list-item tappable onclick="ons.notification.prompt({message: 'What is your name?'})">Prompt</ons-list-item>
</ons-list>
</ons-page>
<ons-dialog id="dialog-1">
<div style="text-align: center; padding: 10px;">
<p>
This is a dialog.
<p>
<p>
<ons-button onclick="hideDialog('dialog-1')">Close</ons-button>
</p>
</div>
</ons-dialog>
<ons-alert-dialog id="dialog-2">
<div class="alert-dialog-title">Warning!</div>
<div class="alert-dialog-content">
An error has occurred!
</div>
<div class="alert-dialog-footer">
<button class="alert-dialog-button" onclick="hideDialog('dialog-2')">Cancel</button>
<button class="alert-dialog-button" onclick="hideDialog('dialog-2')">OK</button>
</div>
</ons-alert-dialog>
<ons-template id="dialog.html">
<ons-dialog id="dialog-3">
<div style="text-align: center; padding: 10px;">
<p>
This dialog was created from a template.
<p>
<p>
<ons-button onclick="hideDialog('dialog-3')">Close</ons-button>
</p>
</div>
</ons-dialog>
</ons-template>

Open portlet from other portlet

Is it possible to open pop up window from one portlet, that contains some other portlet ?
<portlet:renderURL var="kategorijaSelectorURL" windowState="<%= LiferayWindowState.POP_UP.toString() %>">
<portlet:param name="mvcPath" value="/html/kategorija/view.jsp" />
<portlet:param name="struts_action" value="/html/kategorija/view.jsp" />
<portlet:param name="tabs1" value="kategorije" />
<portlet:param name="redirect" value="<%=redirect1 %>" />
</portlet:renderURL>
yes you can.
var url;
function createRenderURL(portletId) {
AUI().ready('liferay-portlet-url', function(A) {
var renderURL = Liferay.PortletURL.createRenderURL();
renderURL.setName("test");
renderURL.setWindowState("pop_up");
renderURL.setPortletId(portletId);
url = renderURL.toString();
});
}
You can check below link for more deatails
Display portlet in pop-up Liferay
The idea is, create a URL of portlet which you want to invoke in popup and set window state to LiferayWindowState.POP_UP.toString()
update:
AUI().use('aui-dialog', 'aui-io', 'event', 'event-custom', function(A) {
dialog = new A.Dialog({
title: 'Title',
centered: true,
draggable: true,
resizable: false,
width: '980px',
height: '700px',
modal: true,
destroyOnClose: true
}).plug(A.Plugin.IO, {uri: '<%=urUrl%>'}).render();
dialog.show();
});

Pop up showing the same page in liferay

I have a portlet in which there is a pop up .The content of the popup does not change but instead shows the same page from where it is clicked.When i click the notify button the popup shows but with the content of view.jsp.
All the code is present in view.jsp
<%#page import="com.mvantage.contract.model.Contract"%>
<%# include file="/init.jsp" %>
<portlet:defineObjects />
<%
PortletURL actionURL1=renderResponse.createActionURL();
actionURL1.setParameter(ActionRequest.ACTION_NAME,"navigateDashboard");
ArrayList<Contract> contractParameterList= (ArrayList<Contract>)renderRequest.getAttribute("contract");%>
<portlet:renderURL var="contractURL" windowState="<%= LiferayWindowState.POP_UP.toString()%>">
<portlet:param name="jspPage" value="/html/popup.jsp" />
</portlet:renderURL>
<script type="text/javascript">
alert("Inside new popup");
function showPopup() {
AUI().use('aui-dialog', 'aui-io', 'event', 'event-custom', function(A) {
var dialog = new A.Dialog({
title: 'Pop Up',
centered: true,
draggable: true,
modal: true,
width: 500,
height: 500,
}).plug(A.Plugin.IO, {uri: '<%= contractURL %>'}).render();
dialog.show();
});
}
<div id="container">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example4">
<thead>
<tr>
<th>a</th>
<th>b/th>
<th>c</th>
<th>d</th>
<th>e</th>
<th>f</th>
<th>g</th>
</tr>
</thead>
<tbody>
<%for(int i=0; i<contractParameterList.size(); i++ ){
Contract contractParameter = new Contract();
contractParameter = (Contract)contractParameterList.get(i);
%>
<tr class="odd gradeX">
<td><%=contractParameter.getAssetName()%></td>
<%actionURL1.setParameter("assetId",contractParameter.getAssetID());%>
<td><%=contractParameter.getAssetID()%></td>
<td><%=contractParameter.getCustomerName()%></td>
<td><%=contractParameter.getLocation()%></td>
<td><%=contractParameter.getRiskType()%></td>
<td><%=contractParameter.getContractNotificationTrigger()%></td>
<td><input class="notify" type="button" value="Notify" onclick="showPopup('<%=contractURL.toString()%>')"></td></tr> <%} %></tbody></table> <div style="clear:both;"></div></div>
The way you are using the A.Dialog it's not the best for me.
Try to use this way: http://alloyui.com/versions/1.7.x/examples/dialog/real-world/
Hi you can try below simplified code :
<aui:button value="Pop Up" icon="av-icon" iconAlign="left"
type="button" onClick="displayPopUp()" cssClass="notify" />
<script type="text/javascript">
function displayPopUp(){
Liferay.Util.openWindow({dialog: {width: 500,height: 500,destroyOnHide: true}, title: 'Pop Up', uri: '<%=contractURL%>
'
});
}
</script>

liferay popup dispalying tthe same content as its render page

I have a popup which show the same page from which it was clicked . I have redirected it to another jsp but it does not show that jsp page but instead shows the same jsap page in the jsp .Below is the code . Thanks in advance
All the code below is in view.jsp
<portlet:defineObjects />
<script type="text/javascript">
var dialog2
function Popupdisplay1(url,flr){
alert(url);
AUI().use('aui-dialog', 'aui-io', function(A) {
alert("reached here inside popup");
dialog2 = new A.Dialog({
align:Liferay.Util.Window.ALIGN_CENTER,
title: 'My PopUp',
centered: true,
modal: true,
width: 550,
height: 400,
id: 'alert',
draggable: false,
resizable: false,
}).plug(A.Plugin.IO, {uri: url}).render();
});
}
</script>
<portlet:renderURL var="contractURL" windowState=<%=LiferayWindowState.EXCLUSIVE.toString()%>">
<portlet:param name="jspPage" value="" />
</portlet:renderURL>
<td><input class="notify" type="button" value="Notify"onclick="Popupdisplay1('<%=contractURL.toString()%>')"></td>

AUI is not defined and Liferay is not defined error in jsp page?

I am using my custom portlet in liferay.
but somehow when i run my portlet i m having following error in error console
Timestamp: 12/10/2012 12:33:19 PM
Error: ReferenceError: AUI is not defined
Source File: http://localhost:8080/eMenuAdvertise-portlet/js/jquery.min.js
Line: 4
Timestamp: 12/10/2012 12:34:21 PM
Error: ReferenceError: Liferay is not defined
Source File: http://localhost:8080/eMenuAdvertise-portlet/js/jquery.min.js
Line: 3
So why this error comes in my jsp page for some jquery?
<%# page import="net.sf.jasperreports.engine.JRException" %>
<%# page import="net.sf.jasperreports.engine.JasperExportManager" %>
<%# page import="net.sf.jasperreports.engine.JasperFillManager" %>
<%# page import="net.sf.jasperreports.engine.JasperPrint" %>
<%# page import="net.sf.jasperreports.engine.JasperPrintManager" %>
<%#page import="com.liferay.portal.model.Role"%>
<%# include file="/init.jsp"%>
<%#page import="com.liferay.portal.model.Organization"%>
<%#page import="com.liferay.portal.util.PortalUtil"%>
<style>
.borderColor{border: 1px solid #C62626;}
</style>
<portlet:renderURL var="ajaxaddnewrestURL">
<portlet:param name="jspPage" value="/jsps/ajaxnewrest.jsp" />
</portlet:renderURL>
<portlet:renderURL var="editrestURL">
<portlet:param name="jspPage" value="/jsps/Ajax_editrest.jsp" />
</portlet:renderURL>
<portlet:renderURL var="restListURL">
<portlet:param name="jspPage" value="/jsps/rest.jsp" />
</portlet:renderURL>
<portlet:renderURL var="reportURL">
<portlet:param name="jspPage" value="/htmlreport/report.html" />
</portlet:renderURL>
<portlet:renderURL var="renderURL ">
<portlet:param name="param-name" value="param-value" />
</portlet:renderURL>
<%-- <portlet:resourceURL var="ReportId" id="generate_report"></portlet:resourceURL> --%>
<portlet:resourceURL var="addToDo" id="generate_report"></portlet:resourceURL>
<script type="text/javascript" src="<%=request.getContextPath()%>/lib/chosen/chosen.jquery.min.js"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.3/themes/south-street/ui.all.css" type="text/css">
<script src="<%=request.getContextPath()%>/js/datepickernew/jquery-1.8.3.js"></script>
<script src="<%=request.getContextPath()%>/js/datepickernew/jquery-ui.js"></script>
<script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery.validate.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/lib/chosen/chosen.jquery.min.js"></script>
<%
System.setProperty("java.awt.headless", "true");
System.out.println(java.awt.GraphicsEnvironment.isHeadless());
String loading_img_path = request.getContextPath()+"/img/ajax_loader.gif";
boolean isReseller=false; ///advertiser if flag is false else Reseller
List<Role> role_list_page=themeDisplay.getUser().getRoles();
for(Role role_name:role_list_page){
if(role_name.getName().equals("Reseller")){
isReseller=true;
break;
}
}%>
<script>
</script>
<script>
$(function() {
$("#Start_validBeforeDatepicker").datepicker({
numberOfMonths: 1,
showButtonPanel: true,
onClose: function( selectedDate ) {
$( "#End_validAfterDatepicker" ).datepicker( "option", "minDate", selectedDate );
}
});
$("#End_validAfterDatepicker").datepicker({
numberOfMonths: 1,
showButtonPanel: true,
onClose: function( selectedDate ) {
$( "#Start_validBeforeDatepicker" ).datepicker( "option", "maxDate", selectedDate );
}
});
// $("#validBeforeDatepicker").datepicker({ minDate: 0 });
$('#Start_validBeforeDatepicker,#End_validAfterDatepicker').datepicker();
});
</script>
<script type="text/javascript">
$(".chzn-select").chosen();
$(".chzn-select-deselect").chosen({
allow_single_deselect : true
});
$(document).ready(function() {
$(".ui-datepicker").css("display","none");
});
</script>
<script type="text/javascript">
function update_rest(addToDo){
var camp_ID =document.getElementById('camp_id').value;
var f_start_date =document.getElementById('Start_validBeforeDatepicker').value;
var f_end_date =document.getElementById('End_validAfterDatepicker').value;
$.ajax({
url :addToDo,
data: {"rest_name":camp_ID,
"f_start_date":f_start_date,
"f_end_date":f_end_date,
"CMD":camp_ID},
type: "GET",
timeout: 20000,
dataType: "text",
success: function(data) {
alert("");
alert ( " liferay url : "+ Liferay.PortletURL.createRenderURL());
alert( "row1: " + createRowURL(1) );
alert( "row2: " + createRowURL(2) );
$("#mydiv").load("<%=renderURL.toString()%>");
alert(data);
}
});
}
function createRowURL( row ) {
var portletURL = new Liferay.PortletURL();
portletURL.setParameter("rowNumber", row );
return portletURL.toString();
}
function createRenderURL(str) {
alert("");
var renderURL = Liferay.PortletURL.createRenderURL();
alert("hi");
renderURL .setParameter("jspPage",str);
renderURL .setPortletId("eMenuAdvertise_WAR_eMenuAdvertiseportlet");
// i.e. your-unique-portlet-id can be like "helloworld_WAR_helloworldportlet"
}
</script>
<nav>
<div id="jCrumbs" class="breadCrumb module">
<ul>
<li><i class="icon-home"></i></li>
<li>Reseller</li>
<li>Restaurants</li>
</ul>
</div>
</nav>
<div class="row-fluid">
<div class="span12">
<div id="successMsg" style='display:none;' class="alert alert-success"></div>
<div id="errorMsg" style='display:none;' class="alert alert-error"></div>
<h3 class="heading">
Statistics
</h3>
<%String restId = request.getParameter("hide1");%>
<portlet:actionURL name="generateReport" var="reportURL"></portlet:actionURL>
</div>
<div class="">
<div class="">
<div class="">
<div style="float: right">
<p>
<label style="width: 100px"><b>Campaign</b></label>
</p>
<select id="camp_id" name="camp_id"
data-placeholder="- Select Restaurants -" class="chzn-select"
multiple><%
String status = null;
List<campaign> camp_listObj;
if(isReseller)
{
camp_listObj= campaignLocalServiceUtil.getAllCampaignByOrganizations(themeDisplay);
}
else
{
camp_listObj = campaignLocalServiceUtil.getAllCampaignByOrganizationId(themeDisplay);
}
for (int i = 0; i < camp_listObj.size(); i++) {
%>
<option value=<%=camp_listObj.get(i).getPrimaryKey()%>><%=camp_listObj.get(i).getName().toString()%></option>
<%
}
%>
</select>
</div>
<div style="float: left;">
<p>
<button onclick="update_rest('<%=addToDo%>');" class="btn btn-success">GenerateReports</button>
</p>
<b>Start Date</b> <input type="text" style="width: 100px"
id="Start_validBeforeDatepicker" name="validTodayDatepicker"
readonly="true"> <b>End Date</b> <input type="text"
readonly="true" style="width: 100px" id="End_validAfterDatepicker"
name="validAfterDatePicker">
</div>
</div>
</div>
<div style="visibility: hidden;">
<input type="hidden" name="report_path" id="report_path" value="">
</div>
<%
System.setProperty("java.awt.headless", "true");
System.out.println(java.awt.GraphicsEnvironment.isHeadless());
%>
</div>
</div>
<div class="bordercolor" id="mydiv">
</div>
<script type="text/javascript">
function editrestaurant(id){
$(".span12").html("<img class='ajax-loader' src='<%=loading_img_path%>'/>");
$.ajax({
type:'post',
url:'<%=editrestURL.toString()%>',
data:{restId:id},
success:function(data){
$(".main_content").html(data);
}
});
}
function newrestaurant(){
$(".span12").html("<img class='ajax-loader' src='<%=loading_img_path%>'/>");
$.ajax({
type:'post',
url:'<%=ajaxaddnewrestURL.toString() %>',
data:{},
success:function(data){
$(".main_content").html(data);
}
});
}
</script>
portlet.vm
#set ($portlet_display = $portletDisplay)
#set ($portlet_id = $htmlUtil.escapeAttribute($portlet_display.getId()))
#set ($portlet_title = $portlet_display.getTitle())
#set ($portlet_back_url = $htmlUtil.escapeAttribute($portlet_display.getURLBack()))
<section id="portlet_$portlet_id">
$portlet_display.writeContent($writer)
</section>
portal_normal.vm
#parse ($init)
<html class="#language("lang.dir")" dir="#language("lang.dir")" lang="$w3c_language_id">
<head>
</head>
<body class="$css_class">
<div id="wrapper">
<div id="content">
$theme.wrapPortlet("portlet.vm", $content_include)
</div>
</div>
</body>
$theme.include($bottom_include)
</html>
portal_popup.vm
<!DOCTYPE html>
#parse ($init)
<html dir="#language ("lang.dir")" lang="$w3c_language_id">
<head>
<title>$the_title</title>
$theme.include($top_head_include)
</head>
<body class="portal-popup $css_class">
$theme.include($content_include)
$theme.include($bottom_ext_include)
</body>
</html>
navigation.vm
<nav class="$nav_css_class" id="navigation">
<h1>
<span>#language("navigation")</span>
</h1>
<ul>
#foreach ($nav_item in $nav_items)
#if ($nav_item.isSelected())
<li class="selected">
#else
<li>
#end
<a href="$nav_item.getURL()" $nav_item.getTarget()><span>$nav_item.icon() $nav_item.getName()</span></a>
#if ($nav_item.hasChildren())
<ul class="child-menu">
#foreach ($nav_child in $nav_item.getChildren())
#if ($nav_child.isSelected())
<li class="selected">
#else
<li>
#end
<a href="$nav_child.getURL()" $nav_child.getTarget()>$nav_child.getName()</a>
</li>
#end
</ul>
#end
</li>
#end
</ul>
</nav>
In the <script> you have two javascript functions - createRowURL and createRenderURL which make use of the Alloy UI scripts as follows:
function createRowURL( row ) {
var portletURL = new Liferay.PortletURL(); // this is the line using AUI
portletURL.setParameter("rowNumber", row );
return portletURL.toString();
}
function createRenderURL(str) {
alert("");
var renderURL = Liferay.PortletURL.createRenderURL(); // this is the line using AUI
alert("hi");
renderURL .setParameter("jspPage",str);
renderURL .setPortletId("eMenuAdvertise_WAR_eMenuAdvertiseportlet");
// i.e. your-unique-portlet-id can be like "helloworld_WAR_helloworldportlet"
}
So I would suggest instead of using the <script> ... </script> tag use <aui:script> ... </aui:script> tags (this loads all the AUI and Liferay modules), for using this tag you would need to define the taglib in your jsp like:
<%# taglib uri="http://alloy.liferay.com/tld/aui" prefix="aui" %>`
Edit (after seeing the theme templates):
I can see that in your portal_normal.vm you have removed the following lines from <head> and <body> tags respectively:
$theme.include($top_head_include) <!-- this statement is removed from <head> -->
$theme.include($body_top_include) <!-- this statement is removed from <body> -->
Please include these statements back in the theme templates and your scripts would work. The statement $theme.include($top_head_include) this is responsible to include all the AUI related stuff (javascripts, functions etc) and also some variables in the request attribute.
Note: Please always be careful while removing anything from themes and hooks. You should always know what is the purpose of the statements you are removing or modifying.
Hope this helps.

Resources