Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 238
  • 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
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
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

Featured Post

[Webinar On Demand] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

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