Link to home
Start Free TrialLog in
Avatar of aman_greval
aman_greval

asked on

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;
Avatar of Michel Plungjan
Michel Plungjan
Flag of Denmark image

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
Avatar of aman_greval
aman_greval

ASKER

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;
ASKER CERTIFIED SOLUTION
Avatar of LeeKowalkowski
LeeKowalkowski
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
or

htp.p('<SCRIPT>var x=true; if(x) { x=false; alert("'||p_message.error_code||' : '||REPLACE(p_message.error_message,'"','')||'"); }</SCRIPT>');
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'));
Error on compilation is: identifier HTFBOLD must be declared.!
sURL := htf.anchor(cURL=>'javascript:alert("Invalid User: Please Call Administrator")', cText=>htfbold('ASC Order'));
Sorry, it's htf.bold!
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(
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!
Doh, you'll need to escape those quotes!
cURL=>'javascript:alert(&quot;Invalid User: Please Call Administrator&quot;)'

By escaping quotes you mean backslash..

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