TIP: Building Modal Popup Windows

Build Modal Popup Pages
Introduction
The following is based on the 'How To Document' - 'Build Custom Popup Pages'.
This How To will show the developer how to create Modal Popup windows with the ability to pass information back to the parent window.
Example Scenario
The example described in this how to adds a custom modal popup LOV to a form on the SCOTT.EMP table. Clicking the popup LOV link on the form page will popup a Modal LOV page that allows users to search by ENAME, JOB, and SAL. Selecting a value from this LOV page will close that popup LOV page and populate the ENAME, JOB, and SAL fields on the form page with the selected values. Additionally, had the user entered some data into the ENAME, JOB, and/or SAL fields on the form page, that data would be used in the initial search when the popup LOV page is first shown.
Step 1 - Create a simple form page on SCOTT.EMP
To create the form page, simply step through the HTML DB "Form on a Table or View" wizard against the EMP table accepting the defaults. For this example, create the form with a page number of one, and make sure to allow the ename, job, and sal fields to be editable. When the wizard completes, page 1 of the application should have the items P1_ENAME, P1_JOB, and P1_SAL on it as text fields.
Step 2 - Create a popup page with search fields
Next, create a page that's to be used as the popup window: Page 2. Ultimately, this page will have javascript, a report region, and some buttons. For now, though, just create a page 2 with the items P2_ENAME, P2_JOB, and P2_SAL on it as text fields.
Step 3 - Set Modal popup page header requirements
A) Modal windows by default cache the information they display. When creating a popup window which displays different information each time it is called or to allow searching the caching default must be switched off.
Add the following meta-tag to the "HTML Header" field of the page-level attributes screen for page 2 to accomplish this:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
B) Modal windows by default open a new window when running any redirect calls. When creating a modal popup which passes back parameters to the parent window. The modal window has to be forced to fire redirect calls within its own window rather than open a new window for the redirect.
Add the following tag to the "HTML Header" field of the page-level attributes screen for page 2 to accomplish this:
<base target="_self">
Step 4 - Add Javascript call to the popup page
Because the popup page should filter its result set based on any values that the user might have entered onto the form page, you need to add a javascript function that would pass those values off. Add the following function to the "HTML Header" field of the page-level attributes screen for page 1 to accomplish this:
<script language="JavaScript" type="text/javascript">
  function callMyPopup (formItem1,formItem2,formItem3) {
    var formVal1 = document.getElementById(formItem1).value;
    var formVal2 = document.getElementById(formItem2).value;
    var formVal3 = document.getElementById(formItem3).value;
    var url;
  url = 'f?p=&APP_ID.:2:&APP_SESSION.::::P2_ENAME,P2_JOB,P2_SAL:' + formVal1 + ',' + formVal2 + ',' + formVal3 ;
  // IE Browsers modal popup window
  if (window.showModalDialog) {
    w = showModalDialog(url, window.self,"status:0; scroll:1; resizable:1; dialogWidth:25; dialogHeight:43");
    // w is an array returned from the modal popup containing the passback values
    if (w) {
      document.getElementById("P1_ENAME").value = w[0];
      document.getElementById("P1_JOB").value = w[1];
      document.getElementById("P1_SAL").value = w[2];
      document.getElementById("P1_SAL").focus();
  else {
  // mozilla based browsers modal popup window
  w = open(url,"winLov","Scrollbars=1,resizable=1,width=800,height=600", modal="yes");
  if (w.opener == null)
    w.opener = self;
  w.focus();
</script>Though you don't need to know how to read javascript for this example, it helps to understand that this function only does one important thing: it opens a modal popup window of page two in our application while passing values to P2_ENAME, P2_JOB, and P2_SAL. It gathers those values to pass from the names of the HTML DB items provided to it. The call to this function will be added in the next step below.
Step 5 - Add a popup link next to the P1_SAL field on the form page
Add a link to the form page that will call the callMyPopup function above and pass it the values it needs. To do so, place the following HTML in the "Post Element Text" field attribute of the P1_SAL item:
<~a href="javascript:callMyPopup('P1_ENAME','P1_JOB','P1_SAL');">Click for LOV<~/a>NB. remove ~ from above when deploying
Step 6 - Add the LOV report to the popup page
The next step is to create a report on the popup page based on the values passed from the form on page one. The tricky part of this report is providing a means for the selected values to be passed back to the form page. This can be achieved by having a column of the report render as a javascript link that would close the popup window and pass the ename, job and sal values for that row back. Start by adding a simple report region to our Modal popup page that uses a query such as:
      select ename, job, sal , 'placeholder' the_link
        from emp
       where ename like '%'||:P2_ENAME||'%'
         and (job = :P2_JOB or :P2_JOB is null)
         and (sal = :P2_SAL or :P2_SAL is null)Note that the last column in this query is just a placeholder. once the region is created, turn that placeholder into a link by doing the following:
Navigate to the Page Definition for page 2
Next to the name of the report region created in step 6, Click Q
Next to the column THE_LINK, click the edit icon
In the "Link Text" field enter the string "select"
In the URL field enter: javascript:passBack('#ENAME#','#JOB#','#SAL#'); Click the "Apply Changes" button
Step 7 - Add the javascript function to the Modal popup page to pass selected values to the (parent) form page.
In the previous step you added a call to a javascript function, passBack. Now add that function to the top of Modal popup page 2. In the same manner as step 4 above, add that passBack function to the page 2 by putting it in the "HTML Header" field of the page-level attributes screen. The function should look similar to the following:
<script language="JavaScript">
   function passBack(passVal1, passVal2, passVal3)
     // IE Browser return the passback values in an array
     if (window.showModalDialog) {
       var retVal = new Array(passVal1, passVal2, passVal3);
       window.returnValue = retVal;
       window.close();
     // Mozilla based browsers right the passback values directly into the parent window
     else {
       opener.document.getElementById("P1_ENAME").value = passVal1;
       opener.document.getElementById("P1_JOB").value = passVal2;
       opener.document.getElementById("P1_SAL").value = passVal3;
       opener.document.getElementById("P1_SAL").focus();
       close();
</script>This function simply sets the values of P1_ENAME, P1_JOB, and P1_SAL with the values of the whatever's stored to the three HTML DB item names passed to it. It also closes the current window and puts the cursor back into the P1_SAL field.
Step 8 - Polishing
The basic functionality of this custom modal popup window has been created in steps 1 though 7. To make its usage a little more friendly, it's advisable to add Cancel and Search buttons to the popup window page. The Search button should just be added as a regular button that branches back to the page 2. Adding this button allows users to re-query for LOV options without having to return to our form page. The Cancel button should be created with an "Action" of "Redirect to URL". The "URL Target" of the button should be javascript:window.close(). As the code suggests, the Cancel button would just close the popup window (with no values returned).
Hope this is of use....

Everything said above is working fine but in Mozilla small popup is coming in top left corner of browser..
so please help me so that it is opened in proper width and height in mozilla.

Similar Messages

  • base target=_self issue in modal popup window.

    Hi,
    I have implemented a modal popup window as described in:
    TIP: Building Modal Popup Windows
    I also created a Search button (per step 8 "polishing")
    The html header of the page attributes of the LOV window contains (step 3):
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <base target=_self>
    Still for some reason when I hit Search, a new window opens.
    What am I missing here?
    Toon

    Andy,
    I added the quotes: but no difference in behaviour.
    However I did find something:
    On the search button I had erroneously defined a url-redirect going back to the same page.
    And I also had a conditional (request=search) branch going back to the same page.
    I deleted the url redirect on the search button, and it works fine now: the branch takes me back to the same window (without opening a new one).
    On further testing I found another issue concerning the pagination (it is of type: row ranges in select list with pagination).
    If I press next and previous all works well. But if I select a range from the select list it opens a new window...
    Any ideas here?
    Thanks,
    Toon

  • Modal popup window refresh the parent (calling) window/view

    I have a modal popup window that is adding detail records.  When this window is closed via the Hide method in my controller I would like to refresh the parent (calling) window/view.
    What is the best way to do this?
    Regards,
    Diane

    Here's my process.....
    2-windows & 3 views
    Window 1 - Selection View and Detail View
    Window 2 - Add View (used as a modal popup window called by a button click on the detail view)
    Selection View has all the options for obtaining a list of data for the detail view.  The detail view has an Add button.  Component controller has the hide method and access to the other components that do the update/query methods. On the detail view the user can click Add and a popup modal window shows.  User enters data and clicks either the add or cancel button.  The Detail view needs to refresh to show the additional data that has been added by the modal window.  There are calcuated values in the detail view from a supply function.  This function is not running and the values are not changed.
    What should be put in the hide method that will cause the detail view to obtain new data and supply the calculated values?  If I was using the Add view as part of the same window as the detail/selection views I'd just put in a navigation link between the detail and add views and fire the plug.  I like the idea of the popup window so I'd like to get this to work.
    I put the wdContext.initialize() in the hide method - which yes - caused the detail view to run - however the context lost all the key values so I received a data not found.  I then tried to initialize those nodes that did not contain the key values but the detail view did not display new values.
    Thanks for any ideas.....Diane
    Edited by: Diane Fuller on Jan 8, 2009 6:48 AM

  • Darken Modal/PopUp Window??

    Hi,
    In Flex there is the concept of modal popup windows or modal
    dialogs, whatever you want to call them. Is there a way to control
    the color of the window? So to be clearer, when you pop up a window
    using the PopUpManager Class and set the modal property to "true"
    it creates this dimmed affect in the background. I want to make
    this darker than the default. How can I do this?
    Thanks,
    -Westside

    Create a CSS class for Alert and modify the
    modalTransparencyColor. For instance, here's one I use:

  • Modal Popup Window close issue

    Hi,
    i have a master detail form
    i added a link field on detail form to open a form in popup modal mode
    i putted on Link Attributes onClick="new Ext.ux.PopupWindow({url: this.href, height: 450}).show(); return false;"
    due Modal Popup Window example by Mark Lancaster
    ([http://oracleinsights.blogspot.com/2009/09/apex-modal-windows-are-snap-using-extjs.html])
    I can't close popup window and return on calling page
    Any help?
    Thanks in advance
    Lukx
    so --> win xp
    rdbms --> 10.2.0.4
    apex --> 4.0.2.00.07

    Hi lukx
    You will find additional information in the comments on my blog that will solve your problem.
    Also, my book contains an even better solution for this in chapter 10, page 334.
    Regards
    Mark
    demo: http://apex.oracle.com/pls/otn/f?p=200801 |
    blog: http://oracleinsights.blogspot.com |
    book: Oracle Application Express 4.0 with Ext JS

  • How to make another modal popup window in a modal popup window?

    how to make another modal popup window in a modal popup window?
    two modal windows must be made by inheritance of JDialog.

    the jdialog has constructors where you can set another jdialog as owner. (the same as frame)
    Visit our german java forum at http://www.java-forum.org/de
    An english version will be released soon at http://www.java-forum.org/en

  • Conditional display of modal popup window?

    Hi,
    I'm currently implementing a file-upload in Apex 4.1. The workflow I envision is this:
    *User selects the file and initiates upload
    *The file is checked by some pl/sql code.
    *Under certain conditions the user is asked if she wants to continue.
    *The data is processed.
    For the conditional user-dialog I wanted to use a modal popup window as described in http://shijesh.wordpress.com/2010/04/10/jquery-modal-form-in-apex-4/ and other places.
    But how can I conditionally display this dialog dependent on the result of the file-check? I would need to call a java-script function from pl/sql - but how can this be achieved?
    Any hints or examples?
    Many thanks & kind regards,
    stephan

    steph0h wrote:
    Hi,
    I'm currently implementing a file-upload in Apex 4.1. The workflow I envision is this:
    *User selects the file and initiates upload
    *The file is checked by some pl/sql code.
    *Under certain conditions the user is asked if she wants to continue.
    *The data is processed.
    For the conditional user-dialog I wanted to use a modal popup window as described in http://shijesh.wordpress.com/2010/04/10/jquery-modal-form-in-apex-4/ and other places.
    But how can I conditionally display this dialog dependent on the result of the file-check? I would need to call a java-script function from pl/sql - but how can this be achieved?
    Any hints or examples?
    Many thanks & kind regards,
    stephanI don't think you would call the java-script function from PL/SQL as much as (maybe) use PL/SQL to write it - embed the Javascript code in the generated HTML of the page. Another option would be to put the JavaScript code as page or item attributes to be executed at run-time

  • Modal Popup Window Hides Help Popup Window

    Hello Everybody,
    today I stepped upon an issue regarding popup windows.
    I have created an application with popup windows for editing and inserting new records.
    I left the item label templates to "Optional with Help".
    When I now click upon an item label the help - popup window appears but it is hidden behind the popup window I am working in.
    Is there a workaround for that.
    Is there a possibility to modify the z-order either of the help popup or of the modal window ?
    Any advice is appreciated.
    Regards
    Marc

    There are lot of options to customize the behavior of jQuery dialog. You can set height as auto, however you need to specify some fixed width depending on the content.
    $( "#TEST_POPUP" ).dialog({ height: "auto", width:500 });Default for height is auto, so you may not need to specify it.
    See http://docs.jquery.com/UI/Dialog for more info.
    Regards,
    Hari

  • ADF Faces: non-modal popup windows

    Hi,
    when using the dialog functionality on commandXXX components the dialog always opens in a modal mode. My requirements are to let the user open as many popups as someone likes from the same page.
    Is it possible to achieve this behaviour without manual "javascript hackery"?
    Any hints are greatly appriciated.
    Regards,
    Andreas.

    Hi all,
    I still have the requirement to open a popup in non-modal mode. Has anyone an example how to do that? The actionListener method on my command button has to be executed of course...
    Thanks in advance,
    Andreas

  • Open item listform.aspx in modal popup window

    Hello all,
    i'm new in sharepoint.
    currently i'm workin for customization of list with items to get solution like auction.
    now i hold on there:
    i created workflow which send a notification to user when he is rebid and want to insert link to form with bid button.
    form was created by Infopath 2013 and working great when i click on it directly from SP site.  but when i link it through link in email it goes to IE webpage and looks not really coll.
    will appresiate any idea. thanks

    Hi,
    add the another query parameter at last. like &Source=SiteUrl
    replace the SiteUrl with your workflow context variable.
    Murugesa Pandian| MCPD | MCTS |SharePoint 2010

  • Modal Popups in Firefox

    Hi,
    I've found this thread for modal popups: TIP: Building Modal Popup Windows
    I've the following javascript code:
    function newCategory()
         var url = 'f?p=' + html_GetElement('pFlowId').value + ':12:' +
                                html_GetElement('pInstance').value + ':MASTERDATA_REGION:CATEGORY';
         if (window.showModalDialog)
             showModalDialog(url, window.self,"dialogWidth:50; dialogHeight:20");
              show_Tab1();
           else
                 w = window.open(url, "","width=500,height=200", modal="yes");
              w.focus();
              show_Tab1();
    }It's working fine in IE, so it opens the popup and when the popup is closed it executes the show_Tab1()-function. In FF it's ignoring the 'modal' attribute and executes show_Tab1(), immedialtely after opening the popup.
    I don't have any return values, I only want to have executed the function show_Tab1(), when the popup is closed. Can this be realized somehow?
    Thanks
    chrissy

    Hi Vikas,
    When running my application in IE, and opening the opoup with showModalDialog, I can't interact with the main window until I close the popup.
    ...what is the rationale behind this?
    i.e. why would you like to stop execution until the
    popup is closed?I'm having a region in my page, that's pulled by AJAX, because I don't like the refresh of the whole page, when I only want to change the view. I think you know this, I've the code from Carl (http://htmldb.oracle.com/pls/otn/f?p=11933:48).
    In this page I've a button, which opens the popup, where the user can create new entries for the report. Closing the popup with a given button, will insert the provided data into the table. After this my report on the main page should be updated (that's what my function show_Tab1() is doing). Because of this I'd like to stay the popup at the top until the user added the data or canceled it and stop execution of code, because this is the only why I can see to start my function show_Tab1(), when popup is closed (please see code provided before).
    chrissy

  • Rendering popup windows in JSF form on demand

    Hello,
    i have a form with a RichFaces menu bar at the top and several other UI components , eg. commandButtons. When a <rich:menuItem> or a <a4j:commandButton> component is clicked, a hidden modal popup window appears for user interaction. At the moment, all JSF files associated with the NetBeans project are downloaded to the client machine.
    In order to reduce network traffic for low bandwidth internet connections, i would like to only download the popup window JSF files from the server to the client if the relevant form UI component is clicked.
    Would anyone suggest a possible method to achieve this please?
    Thanks,
    Mark Weatherill.

    you can open a popup page from commandButton like,
    onclick="window.open('http://www.myapp.com/faces/popup.jsp'); return false;"Use the same faces-managed-bean to input data (on popup page and on the main page). Before closing the popup page you can submit its form to update the model. And after closing the popup page you can refresh the main page. Beware that you might have problems with refreshing in https connection (getting "access is denied" exceptions in jscript)

  • Popup window name shows complete application URL

    Hi,
    I have two WD Java applications. App-1 and App-2.
    I am opening App-2 as a non-modal popup window from App-1.
    I want to display "Profile" as a name of this popped up window.
    I have set this property while opening this window, but it still shows complete path of App-2 as window name.
    IWDRequest aRequest = WDProtocolAdapter.getProtocolAdapter().getRequestObject();
    String sUserDetailsURL = <app2 url>;
    IWDWindow aDetailPopUp = wdComponentAPI.getWindowManager().createNonModalExternalWindow(sUserDetailsURL);
      aDetailPopUp.removeWindowFeature(WDWindowFeature.ADDRESS_BAR);
      aDetailPopUp.removeWindowFeature(WDWindowFeature.MENU_BAR);
      aDetailPopUp.removeWindowFeature(WDWindowFeature.STATUS_BAR);
      aDetailPopUp.removeWindowFeature(WDWindowFeature.TOOL_BAR);
      aDetailPopUp.setTitle("Profile");
      aDetailPopUp.setWindowSize(616, 520);
      aDetailPopUp.show();
    Can anybody please tell me what is going wrong here?
    Also, another java application (non-WD) application is also calling App-2 as pop up window with name "Profile", but here also, same issue.
    Var win=window.open(url,"Profile","menubar=no,status=no,scrollbars=no,directories=no,location=no,resizable=yes,width=725,height=625");
    Please help.

    That's odd... So the application title shows perfectly, however if you try to set it deliberately to a more descriptive text in a popup, it shows the complete path.
    I can imagine setting the title would only work on a Modal window, so its framework controlled, not sure about a non-modal window though...
    If your application runs in a portal, you could try using the following method:
    WDPortalNavigation.navigateAbsolute(
              yourPagePathAndName,
              WDPortalNavigationMode.SHOW_EXTERNAL,
              yourPageWindowFeatures,
              "", /* window name/handler, can be empty string */
              WDPortalNavigationHistoryMode.NO_HISTORY,
              "Here set your page title",
              yourPageUrlParameters);

  • ABAP Web Dynpro Window Inactive After Closing Popup Window

    Hello ABAP'ers
    I have a custom ABAP Web dynpro applications that uses multiple tiers of popup windows.  This application was functioning properly in our ECC6.0, Basis release 7.00 Service level 15 environment.  However, we are currently installing EHP4 and moving or basis release to 7.01 service level 5. In this new environment, when multiple popup window tiers are closed simultaneously, the underlining window is not re-activated.
    Here's a more specific description:
    The application starts with a control panel window presenting a series of buttons.  Selecting one of these buttons activates a modal (I know... all web dynpro popups are modal) popup window for the purpose of maintaining some object.  If the user attempts to exit this window without saving the changes, another popup window appears asking if they want to save their changes.  If they say no, both the popup window asking the question and the popup maintenance window are closed, thus returning the user to the switchboard.
    The problem is that none of the functionality on the switchboard is active. the user must manually refresh the URL to "reactivate" the switchboard. 
    When only a single popup window is closed, the underlying window is properly reactivated.  The problem only occurs when multiple popups are closed together.
    Has anybody else seen this occur? Any ideas / notes around to correct it?
    Any info is greatly appreciated.
    R/
    Jim M

    Hello Jim, hello everyone,
    I am encountering the same issue.
    Is a solution known already?
    Thanks
    Johannes

  • Problem with Popup window in BDC

    Hi Gurus,
    I have an SHDB record for transaction VA01 that is called by an ABAP code via "CALL TRANSACTION 'VA01' USING bdc_tab mode 'N' update 'S'".
    It does work when I use the 'A' mode, but when I use 'N' mode it shows an error that can't find a window. But this window is a modal popup asking for copy the taxes for all entries in ITEM TAB.
    We have many BDC here that works in 'N' mode, but none of them have modal popup windows.
    I've already searched for this problem in SDN but I couldn't find any answer.
    May anyone help me please?
    Thanks very much.
    Fabio Purcino

    I am trying to do this with ME15.
       1                                               T ME15 BS AA X   F
       2 SAPMM06I 0100 X                                                                                                                                                                                                                                                                         
       3                                                 BDC_CURSOR EINA-INFNR
       4                                                 BDC_OKCODE /00
       5                                                 EINA-LIFNR 0001100619
       6                                                 EINA-MATNR 93-0450C
       7                                                 EINE-EKORG 2000
       8                                                 EINE-WERKS 2000
       9                                                 EINA-INFNR 5300032946
      10                                                 RM06I-NORMB X
      11 SAPMM06I 0104 X                                                                                                                                                                                                                                                                         
      12                                                 BDC_CURSOR EINE-LOEKZ
      13                                                 BDC_OKCODE /00
      14                                                 EINA-LOEKZ X
      15                                                 EINE-LOEKZ X
      16 SAPLSPO1 0100 X                                                                                                                                                                                                                                                                         
      17                                                 BDC_OKCODE =YES
    it then keeps the last popup and I cannot stop that...
        PERFORM BDC_DYNPRO      USING 'SAPLSP01' '0100'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'SPOP-OPTION1'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                       '/00'.              "1432 7/22/2014
    *                                   '=ENTR'.              "1357 7/22/2014
    *                                  '=YES'.               "1356 7/22/2014

Maybe you are looking for

  • Send and Schedule Tab in OBIEE are not enable.

    Hi expert, My scheduler is working fine with presentation services. But in BI Publisher schedule and send button are not enabled. Do we need to configure anything... Thanks, S

  • Itunes stopping working even after reinstall - help please

    I have not been able to access / watch anything stored on my iTunes on my laptop. every time I click on it I get the following message: ITUNES HAS STOPPED WORKING a problem caused the program to stop working correctly. windows will close the program

  • MQC: Steps and Prerequiste to Execute

    greetings..                   i am new to PP-PI master recipe. I read the SAP help for material calculation but til i need some more clarification for my requirement i am using Active ingredient for making dome chemical . BOM  structure contain one A

  • Mac book pro running slow with lion

    My Mac book pro is running real slow since upgrading from leopard to lion. Takes up to a minute or more to boot up and open some programs like I Photo.

  • Why can't McAfee Antivirus download onto OS X Yosemite, Mac Air?

    Hello, I am trying to download McAfee Antivirus on my 2008 Mac Air with OS X Yosemite and am repeatedly told antivirus is already installed.  McAfee Tech could not find any apps indicating such.  Any ideas appreciated.  I got a message from a medical