• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 244
  • Last Modified:

Want popup message displayed only once on clicking a link

We have an application that runs both in RealTime and Batch.
We are phasing out the Batch one in favour of RealTime.

RealTime application means that data is sent from one pc to another in
a single click of a button instantly.
Batch application waits for CRON job to run to send it across to the other pc.

How this system works? Under the hood we have a function that checks if the job
is realtime or batch (FUNCTION CheckRealTimeASCJob)

If the job is RealTime then it sets the url (basically i need not thouch this code)
If the job is Batch then Instead of follwing the url set by ReturnURL function, i
need to display a popup message That shows "INVALID USER, CONTACT ADMINISTRATOR"

I have done that here, but however, i get this popup each time i navigate.
i need this popup only once when the user chooses ASC Order link. How to do this?

Planning_Menu procedure calls ReturnURL function.
ReturnURL sets the URL page depending on job is realtime or batch.

PROCEDURE PLANNING_MENU (P_JOB_NUMBER IN JOBS.JOB_NUMBER%TYPE)
IS
BEGIN
:
:
:      
htp.tabledata(htf.em('<FONT SIZE = 4 >'||
ASCK_Validations.ReturnURL(p_job_number))||'</FONT>');
                        htp.tabledata('&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp');

:
:
END PLANNING_MENU;  

PACKAGE ASCK_VALIDATIONS
IS
      FUNCTION ReturnURL(p_job_number IN jobs.job_number%TYPE)
      RETURN VARCHAR2
      IS      
      BEGIN
            bRealtimeOuc := CheckRealTimeASCJob(p_job_number) ;
            --Checks and returns if the job is realtime or batch job.

            IF bRealtimeEstimate = 1 THEN
                  --RealTime job. Do nothing. Follow the URL returned by the function
                  sURL := htf.anchor
                  (cURL=>'asck_AuthorisedItems.addAuthorisedItemsForm?p_job_number='
                  ||p_job_number,cText=>htf.strong(htf.em('<FONT SIZE = 4 >' ||'ASC Order'||'</FONT>')),
                  cAttributes=>sAttribute);
            ELSE --batch job.
                  --Comment setting of url, instead popup the message and freeze the screen.

                    /*sURL := htf.anchor(cURL=>'nim2204w$o_hdrs.forminsert?P_JOB_NUMBER='
                        ||p_job_number||'=0',cText=>htf.bold('ASC Order'));*/

                  --if the user is batch user then this alert is shown on every time on navigation
                  --from one screen to another. I want that it should be shown only once when the user
                  --presses the link "ASC Order"
                  asck_utility.showalert('Invalid User: Please Call Administrator');
                  RETURN sURL;
            END IF;
            EXCEPTION
                  WHEN OTHERS THEN      
                           ASCK_Utility.ShowAlert(SQLERRM);
                           RETURN sURL;
      END ReturnURL;
END ASCK_VALIDATIONS;
0
aman_greval
Asked:
aman_greval
  • 6
  • 4
  • 2
1 Solution
 
Michel PlungjanIT ExpertCommented:
If I know what language you coded it in then perhaps I could find where to put the cookie you need.
Perhaps in the library with the ShowAlert you can put some code. But right now I have no idea what to do with your code
0
 
aman_grevalAuthor Commented:
Hi mplungjan:
This is coded in Oracle pl/sql. Packages you see like htf.anchor are oracle packages that facilitate
using oracle pl/sql with web languages like javascript. This package basically "web-enables" pl/sql.
Inside the packages javascript is used as usual.

Code for ShowAlert
PROCEDURE ShowAlert(p_message IN AscErrorMessages)
IS
BEGIN
    htp.p('<SCRIPT>alert("'||p_message.error_code||' : '||REPLACE(p_message.error_message,'"','')||'");</SCRIPT>');
END ShowAlert;
0
 
LeeKowalkowskiCommented:
So you still need the link?  Then don't comment the link out!  

sURL := htf.anchor(cURL=>'javascript:alert("Invalid User: Please Call Administrator")', cText=>htfbold('ASC Order'));

Plus I assume you meant "once" as in "only when clicking on a link", as opposed to "only the first time a link is clicked".
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
Michel PlungjanIT ExpertCommented:
or

htp.p('<SCRIPT>var x=true; if(x) { x=false; alert("'||p_message.error_code||' : '||REPLACE(p_message.error_message,'"','')||'"); }</SCRIPT>');
0
 
aman_grevalAuthor Commented:
Hi LeeKowalkowski:
This solution is giving me an error. Error during menu creation. If this works, it would be a great solution.
Something that fit's my need.
sURL := htf.anchor(cURL=>'javascript:alert("Invalid User: Please Call Administrator")', cText=>htfbold('ASC Order'));
0
 
aman_grevalAuthor Commented:
Error on compilation is: identifier HTFBOLD must be declared.!
sURL := htf.anchor(cURL=>'javascript:alert("Invalid User: Please Call Administrator")', cText=>htfbold('ASC Order'));
0
 
LeeKowalkowskiCommented:
Sorry, it's htf.bold!
0
 
aman_grevalAuthor Commented:
LeeKowalkowski:
i have used htf.bold. It runs without errors now.
However, when i click on the ASC Order link. Nothing happens. I was expecting an alert to pop up.
On the status bar, all i see is javascript.alert(
0
 
LeeKowalkowskiCommented:
Doh, you'll need to escape those quotes!

cURL=>'javascript:alert(&quot;Invalid User: Please Call Administrator&quot;)'

Currently your attributes are ending prematurely: <a href="javascript:alert("...>

Sorry, about that!
0
 
aman_grevalAuthor Commented:
Doh, you'll need to escape those quotes!
cURL=>'javascript:alert(&quot;Invalid User: Please Call Administrator&quot;)'

By escaping quotes you mean backslash..

0
 
LeeKowalkowskiCommented:
Well, no, I meant changing " to &quot;
0
 
aman_grevalAuthor Commented:
Hi LeeKowalkowski:
Solved:
sURL := HTF.anchor(cURL=>'javascript:alert('||'''Invalid User: Please Call Administrator2'''||')', cText=>htf.bold('ASC Order'));
Thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

  • 6
  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now