SlideShare a Scribd company logo
1 of 26
1
>> How toTech-Forward >>
Kai Donato, Team Lead JavaScript
HROUG Spring Conference, 18th May 2022
2
about me
Team Lead JavaScript @ MT AG
Architect, Project Leader and Developer (JavaScript & APEX)
Kai Donato
3
> 300 Employees
> 50 APEX Experts
certified partner for
leading
technologies
Vendor neutral
Cross-Industry
Top Company for
Trainees & Students
Head Office
Ratingen
Branch Offices
Frankfurt am Main
Köln
München
Hamburg
> 125 Active Clients
> 44 Mio. Euro
Revenue in 2021
Privately-Owned
Founded
1994
Your partner for digital change
Individual IT solutions from one source
about MT AG
5
Agenda
1. Confirm & Alert Basics
Pre APEX 21.2
2.
Differences
4.
Challenges
5.
Conclusion
6.
New in APEX 21.2
3.
6
→ JavaScript calls
→ based on Browser different
→ Showing a text
→ Buttons OK and Cancel
→ Showing a text
→ User can click OK
Basics
Confirm
Alert
Confirm & Alert Basics
7
Confirm Basics
confirm(“test“);
Firefox Edge (Chromium)
Chrome
8
Alert Basics
alert(“test“);
Firefox Edge (Chromium)
Chrome
9
Pre APEX 21.2
Confirm Delete
10
Pre APEX 21.2 – JavaScript API
apex.page.confirm('Delete Department', 'DELETE‘);
or
apex.confirm('Delete Department', 'DELETE‘);
or with
apex.page.confirm("Save Department?", {
request:"SAVE",
set:{"P1_DEPTNO":10, "P1_EMPNO":5433}
});
Confirm
11
New in APEX 21.2
Declarative Confirm for Buttons
12
Confirmation „Style“
Danger
Warning
Information
Default
Success
13
New in APEX 21.2
Declarative Confirm by Dynamic Action
14
New in APEX 21.2
Declarative Confirm by Dynamic Action customized
15
New in APEX 21.2
Declarative Alert by Dynamic Action
16
New in APEX 21.2
• First
Declarative way of Dependencies
17
New in APEX 21.2
Upgrade Application -> Migrate old confirm delete
18
Differences
Legacy/Old
Declarative APEX 21.2
Legacy / Old APEX 21.2
no UI customization
=> Buttons, Dialog Position, Button Positions
fixed
Headline / Text / Icon / Button / Size / Position
customizable
Browser based UI Universal Theme Style
Blocking Callback functionality
Simple Syntax Complex Syntax
19
Challenges
apex.message.confirm('Delete this?', function(okPressed) {
if (okPressed) {
alert('deleted');
}
});
apex.message.confirm('2nd Delete this?', function(okPressed) {
if (okPressed) {
alert('2nd deleted');
}
});
handling JavaScript confirm
if (confirm('Delete this?')) {
alert('is deleted');
}
if (confirm('2nd Delete this?')) {
alert('2nd is deleted');
}
Both Confirm Messages will directly be rendered
first confirm will „block“
20
Challenges
apex.message.confirm('Delete this?',
function(okPressed) {
if (okPressed) {
alert('deleted');
}
});
apex.message.confirm('2nd Delete this?',
function(okPressed) {
if (okPressed) {
alert('2nd deleted');
}
});
handling JavaScript confirm
apex.message.confirm('Delete this?', function(okPressed) {
if (okPressed) {
alert('deleted’);
apex.message.confirm('2nd Delete this?',
function(okPressed) {
if (okPressed) {
alert('2nd deleted');
}
});
}
});
21
Challenges
$('.t-Body-nav a') // click on navigation tree
.add($('a.t-Tabs-link')) // click on tabs
.on('click', function(event) {
if (ask_confirm_discard()) {
event.preventDefault(); // stop standard event
confirm_redirect(apex.lang.getMessage('APEX.WARN_ON_UNSAVED_CHANGES‘)
,event.currentTarget.href); // use currentTarget instead of target
}
});
calling „confirm“ from multiple Sources
22
Challenges
function confirm_redirect(i_message, i_url, i_show_spinner = true) {
apex.message.confirm(i_message, function(okPressed) {
if (okPressed) {
redirect_page(i_url, i_show_spinner);
}
});
}
function redirect_page(i_url, i_show_spinner = true) {
if (i_show_spinner) {
setTimeout(function(){ spinner_show(); }, 1); // showSpinner
}
apex.navigation.redirect(i_url);
}
calling „confirm“ from multiple Sources
23
Challenges
function my_redirect(pWhere) {
var origRedirect = apex.navigation.redirect;
console.log( "Before apex.navigation.redirect", pWhere );
apex.message.confirm("You sure?", function( okPressed ) {
if( okPressed ) {
origRedirect.apply(arguments);
}
});
}
apex.navigation.redirect = my_redirect;
Overwrite a the redirect
24
Challenges
Combine custom JavaScript with declarative Confirm
25
APEX 21.2 – JavaScript API
- apex.confirm (only alias)
- apex.page.confirm
- apex.message.confirm
see https://apex.oracle.com/jsapi
26
JavaScript usage possible but different syntax
Customization possible
Complex JavaScript scenarios not easy
Look & Feel like other APEX components
Declarative usage for most Applications
Conclusion
27
Thank you for listening
Questions?
Oliver Lemm
Business Unit Manager APEX
@OliverLem
m
https://www.linkedin.com/in/oliverlem
m

More Related Content

Similar to >> How toTech-Forward >>

SproutCore and the Future of Web Apps
SproutCore and the Future of Web AppsSproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
Mike Subelsky
 
Google Developer Fest 2010
Google Developer Fest 2010Google Developer Fest 2010
Google Developer Fest 2010
Chris Ramsdale
 

Similar to >> How toTech-Forward >> (20)

Adobe analytics implementation secret hacks
Adobe analytics implementation secret hacksAdobe analytics implementation secret hacks
Adobe analytics implementation secret hacks
 
Whatever it takes - Fixing SQLIA and XSS in the process
Whatever it takes - Fixing SQLIA and XSS in the processWhatever it takes - Fixing SQLIA and XSS in the process
Whatever it takes - Fixing SQLIA and XSS in the process
 
Scripting and Automation within the MAX Platform Ernest Byrd
Scripting and Automation within the MAX Platform   Ernest ByrdScripting and Automation within the MAX Platform   Ernest Byrd
Scripting and Automation within the MAX Platform Ernest Byrd
 
Oopp Lab Work
Oopp Lab WorkOopp Lab Work
Oopp Lab Work
 
Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010
 
JSUG - Filthy Flex by Christoph Pickl
JSUG - Filthy Flex by Christoph PicklJSUG - Filthy Flex by Christoph Pickl
JSUG - Filthy Flex by Christoph Pickl
 
當ZK遇見Front-End
當ZK遇見Front-End當ZK遇見Front-End
當ZK遇見Front-End
 
Studying the impact of Social Structures on Software Quality
Studying the impact of Social Structures on Software QualityStudying the impact of Social Structures on Software Quality
Studying the impact of Social Structures on Software Quality
 
Oracle APEX migration to 5.1 - Our experience
Oracle APEX migration to 5.1 - Our experienceOracle APEX migration to 5.1 - Our experience
Oracle APEX migration to 5.1 - Our experience
 
SproutCore and the Future of Web Apps
SproutCore and the Future of Web AppsSproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
 
Vaadin 7 CN
Vaadin 7 CNVaadin 7 CN
Vaadin 7 CN
 
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
 
ユニバーサル Windows アプリ開発
ユニバーサル Windows アプリ開発ユニバーサル Windows アプリ開発
ユニバーサル Windows アプリ開発
 
JBoss World 2010
JBoss World 2010JBoss World 2010
JBoss World 2010
 
iOS build that scales
iOS build that scalesiOS build that scales
iOS build that scales
 
2008 - TechDays PT: Building Software + Services with Volta
2008 - TechDays PT: Building Software + Services with Volta2008 - TechDays PT: Building Software + Services with Volta
2008 - TechDays PT: Building Software + Services with Volta
 
Tomas Della Vedova - Building a future proof framework - Codemotion Milan 2018
Tomas Della Vedova - Building a future proof framework - Codemotion Milan 2018Tomas Della Vedova - Building a future proof framework - Codemotion Milan 2018
Tomas Della Vedova - Building a future proof framework - Codemotion Milan 2018
 
LISA Qooxdoo Tutorial Handouts
LISA Qooxdoo Tutorial HandoutsLISA Qooxdoo Tutorial Handouts
LISA Qooxdoo Tutorial Handouts
 
Google Developer Fest 2010
Google Developer Fest 2010Google Developer Fest 2010
Google Developer Fest 2010
 
Getting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with ThymeleafGetting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with Thymeleaf
 

More from Kai Donato

More from Kai Donato (13)

Testing APEX apps At A Glance
Testing APEX apps At A GlanceTesting APEX apps At A Glance
Testing APEX apps At A Glance
 
APEX Offline – The missing Link
APEX Offline – The missing LinkAPEX Offline – The missing Link
APEX Offline – The missing Link
 
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehenICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
 
Click, Click, Test - Automated Tests for APEX Applications
Click, Click, Test - Automated Tests for APEX ApplicationsClick, Click, Test - Automated Tests for APEX Applications
Click, Click, Test - Automated Tests for APEX Applications
 
Full Stack Development mit JavaScript
Full Stack Development mit JavaScriptFull Stack Development mit JavaScript
Full Stack Development mit JavaScript
 
APEX and additional Templating Engines
APEX and additional Templating EnginesAPEX and additional Templating Engines
APEX and additional Templating Engines
 
JavaScript-Erweiterungen für UI und UX
JavaScript-Erweiterungen für UI und UXJavaScript-Erweiterungen für UI und UX
JavaScript-Erweiterungen für UI und UX
 
WebSocket my APEX!
WebSocket my APEX!WebSocket my APEX!
WebSocket my APEX!
 
Professional JavaScript Error-Logging
Professional JavaScript Error-LoggingProfessional JavaScript Error-Logging
Professional JavaScript Error-Logging
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
 
Managing Node.js Instances with Oracle APEX
Managing Node.js Instances with Oracle APEXManaging Node.js Instances with Oracle APEX
Managing Node.js Instances with Oracle APEX
 
Echtzeitvisualisierung von Twitter und Co.
Echtzeitvisualisierung von Twitter und Co.Echtzeitvisualisierung von Twitter und Co.
Echtzeitvisualisierung von Twitter und Co.
 
Avoid Network-Issues and Polling
Avoid Network-Issues and PollingAvoid Network-Issues and Polling
Avoid Network-Issues and Polling
 

Recently uploaded

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Recently uploaded (20)

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 

>> How toTech-Forward >>

  • 1. 1 >> How toTech-Forward >> Kai Donato, Team Lead JavaScript HROUG Spring Conference, 18th May 2022
  • 2. 2 about me Team Lead JavaScript @ MT AG Architect, Project Leader and Developer (JavaScript & APEX) Kai Donato
  • 3. 3 > 300 Employees > 50 APEX Experts certified partner for leading technologies Vendor neutral Cross-Industry Top Company for Trainees & Students Head Office Ratingen Branch Offices Frankfurt am Main Köln München Hamburg > 125 Active Clients > 44 Mio. Euro Revenue in 2021 Privately-Owned Founded 1994 Your partner for digital change Individual IT solutions from one source about MT AG
  • 4. 5 Agenda 1. Confirm & Alert Basics Pre APEX 21.2 2. Differences 4. Challenges 5. Conclusion 6. New in APEX 21.2 3.
  • 5. 6 → JavaScript calls → based on Browser different → Showing a text → Buttons OK and Cancel → Showing a text → User can click OK Basics Confirm Alert Confirm & Alert Basics
  • 9. 10 Pre APEX 21.2 – JavaScript API apex.page.confirm('Delete Department', 'DELETE‘); or apex.confirm('Delete Department', 'DELETE‘); or with apex.page.confirm("Save Department?", { request:"SAVE", set:{"P1_DEPTNO":10, "P1_EMPNO":5433} }); Confirm
  • 10. 11 New in APEX 21.2 Declarative Confirm for Buttons
  • 12. 13 New in APEX 21.2 Declarative Confirm by Dynamic Action
  • 13. 14 New in APEX 21.2 Declarative Confirm by Dynamic Action customized
  • 14. 15 New in APEX 21.2 Declarative Alert by Dynamic Action
  • 15. 16 New in APEX 21.2 • First Declarative way of Dependencies
  • 16. 17 New in APEX 21.2 Upgrade Application -> Migrate old confirm delete
  • 17. 18 Differences Legacy/Old Declarative APEX 21.2 Legacy / Old APEX 21.2 no UI customization => Buttons, Dialog Position, Button Positions fixed Headline / Text / Icon / Button / Size / Position customizable Browser based UI Universal Theme Style Blocking Callback functionality Simple Syntax Complex Syntax
  • 18. 19 Challenges apex.message.confirm('Delete this?', function(okPressed) { if (okPressed) { alert('deleted'); } }); apex.message.confirm('2nd Delete this?', function(okPressed) { if (okPressed) { alert('2nd deleted'); } }); handling JavaScript confirm if (confirm('Delete this?')) { alert('is deleted'); } if (confirm('2nd Delete this?')) { alert('2nd is deleted'); } Both Confirm Messages will directly be rendered first confirm will „block“
  • 19. 20 Challenges apex.message.confirm('Delete this?', function(okPressed) { if (okPressed) { alert('deleted'); } }); apex.message.confirm('2nd Delete this?', function(okPressed) { if (okPressed) { alert('2nd deleted'); } }); handling JavaScript confirm apex.message.confirm('Delete this?', function(okPressed) { if (okPressed) { alert('deleted’); apex.message.confirm('2nd Delete this?', function(okPressed) { if (okPressed) { alert('2nd deleted'); } }); } });
  • 20. 21 Challenges $('.t-Body-nav a') // click on navigation tree .add($('a.t-Tabs-link')) // click on tabs .on('click', function(event) { if (ask_confirm_discard()) { event.preventDefault(); // stop standard event confirm_redirect(apex.lang.getMessage('APEX.WARN_ON_UNSAVED_CHANGES‘) ,event.currentTarget.href); // use currentTarget instead of target } }); calling „confirm“ from multiple Sources
  • 21. 22 Challenges function confirm_redirect(i_message, i_url, i_show_spinner = true) { apex.message.confirm(i_message, function(okPressed) { if (okPressed) { redirect_page(i_url, i_show_spinner); } }); } function redirect_page(i_url, i_show_spinner = true) { if (i_show_spinner) { setTimeout(function(){ spinner_show(); }, 1); // showSpinner } apex.navigation.redirect(i_url); } calling „confirm“ from multiple Sources
  • 22. 23 Challenges function my_redirect(pWhere) { var origRedirect = apex.navigation.redirect; console.log( "Before apex.navigation.redirect", pWhere ); apex.message.confirm("You sure?", function( okPressed ) { if( okPressed ) { origRedirect.apply(arguments); } }); } apex.navigation.redirect = my_redirect; Overwrite a the redirect
  • 23. 24 Challenges Combine custom JavaScript with declarative Confirm
  • 24. 25 APEX 21.2 – JavaScript API - apex.confirm (only alias) - apex.page.confirm - apex.message.confirm see https://apex.oracle.com/jsapi
  • 25. 26 JavaScript usage possible but different syntax Customization possible Complex JavaScript scenarios not easy Look & Feel like other APEX components Declarative usage for most Applications Conclusion
  • 26. 27 Thank you for listening Questions? Oliver Lemm Business Unit Manager APEX @OliverLem m https://www.linkedin.com/in/oliverlem m

Editor's Notes

  1. Danger only colour CSS class for customization Text Messages not supported in Message / Confirm and Cancel Label
  2. Without Title/Headline possible Alert cannot be „canceld“
  3. All actions below will fire wenn „ok“ pressed