We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

Want popup message displayed only once on clicking a link

aman_greval
aman_greval asked
on
Medium Priority
265 Views
Last Modified: 2008-01-16
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;
Comment
Watch Question

Michel PlungjanIT Expert
CERTIFIED EXPERT
Top Expert 2009

Commented:
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

Author

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;
Top Expert 2007
Commented:
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".

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
Michel PlungjanIT Expert
CERTIFIED EXPERT
Top Expert 2009

Commented:
or

htp.p('<SCRIPT>var x=true; if(x) { x=false; alert("'||p_message.error_code||' : '||REPLACE(p_message.error_message,'"','')||'"); }</SCRIPT>');

Author

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'));

Author

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'));
Top Expert 2007

Commented:
Sorry, it's htf.bold!

Author

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(
Top Expert 2007

Commented:
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!

Author

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..

Top Expert 2007

Commented:
Well, no, I meant changing " to &quot;

Author

Commented:
Hi LeeKowalkowski:
Solved:
sURL := HTF.anchor(cURL=>'javascript:alert('||'''Invalid User: Please Call Administrator2'''||')', cText=>htf.bold('ASC Order'));
Thanks
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.