1

Hello i am facing a problem of redirection.

i have a API which will call when i click on image and it will take user contact number and dial a call from software.

All things are working perfect but issue is that, API redirecting to an other page which i do not want.

I want to show only message of calling, but focus should remain on same page.

Here is my xhtml code:

Cell No.
                                            <h:outputText value="#{informationManagerBean.cust.cellNo}" styleClass="textColorChange"/>
                                            Direct Dial

                                            <h:outputLink style="margin: 25px" id="tool_dial"  onclick="PF('callDialog').show();
                                                    {
                                                        return true;
                                                    }" value="http://199.199.333.94/calling.php" >
                                                <img src="Resources/images/dialer.png" alt="NR Letter" align="top" style="margin: 25px"/>
                                                <f:param name="cli"  value="#{informationManagerBean.cust.cellNo}"  />
                                                <f:param name="userid"  value="000001"  />
                                            </h:outputLink>
                                            <p:dialog id="callDialog1" onShow="myFunction();" onHide="myStopFunction();"  header="Calling..."
                                                      width="200px" widgetVar="callDialog"
                                                      position="center" draggable="true" resizable="false" closable="false"
                                                      closeOnEscape="true" appendTo="@(body)" modal="true">


                                            </p:dialog>

here is java Script:

<script>
        var myVar;

        function myFunction()
        {
            myVar = setTimeout(function() {
                PF('callDialog').hide()
            }, 3000);
        }

        function myStopFunction()
        {
            clearTimeout(myVar);
        }

    </script>

Thanks

2 Answers2

1

The h:outputLink is supposed to redirect to another uri. I would suggest you call the REST api on http://199.199.333.94/calling.php from a managed bean to which you can refer via p:commandLink or p:commandButton. The ajax calls will prevent redirection to the api's uri.

Edit:

See the following for examples on making http calls from java How to use java.net.URLConnection to fire and handle HTTP requests

Primefaces commandLink https://www.primefaces.org/showcase/ui/button/commandLink.xhtml

Kukeltje
  • 11,924
  • 4
  • 19
  • 44
Humza
  • 350
  • 1
  • 15
1

with such a function you can trigger your dialer out of your bean

public int doCall(String cli, String userid) {
  HttpURLConnection conn = (HttpURLConnection) new URL("http://199.199.333.94/calling.php?cli="+cli+"&userid="+userid).openConnection();
  conn.setDoOutput(false);
  int responseCode = conn.getResponseCode();
  conn.disconnect();
  return responseCode;
}
Holger
  • 765
  • 1
  • 5
  • 11