Iframes when necessity calls for them

Similar documents
Practic Pr al actic Dynamic Actions Intro Jorge Rimblas 1. 1

Apex 5.1 Interactive Grid and Other New features

Standard 1 The student will author web pages using the HyperText Markup Language (HTML)

Oracle Forms and Oracle APEX The Odd Couple

Application Express Just Plug-it In

IMY 110 Theme 11 HTML Frames

Oracle APEX 18.1 New Features

I, J, K. Eclipse, 156

Application Express Dynamic Duo

1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Design Document V2 ThingLink Startup

What is Standard APEX? TOOLBOX FLAT DESIGN CARTOON PEOPLE

ServiceWise/CustomerWise 10.1

Forerunner Mobilizer Dashboards

Google Docs: Access, create, edit, and print

Dashboards. created by others because they have given you permission to view.

To embed the form using an html iframe command, use the script at the end of this document.

Automation is here: How Google Apps can be leveraged to automate tasks in library technology environments

The Basics of PowerPoint

Database Developers Forum APEX

Creating a custom gadget using the Finesse JavaScript Library API

Google Docs: Access, create, edit, and print

1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Oracle Data Visualization SDK

SharePoint For All. Jennie Delisi Accessibility Analyst Kris Schulze User Experience

Oracle Application Express

ThingLink User Guide. Andy Chen Eric Ouyang Giovanni Tenorio Ashton Yon

What's New in IBM WebSphere Portal Version 8? Open Mic November 6, 2012

EBS goes social - The triumvirate Liferay, Application Express and EBS

Grid Essentials. APEX 18.1 Interactive Grids. Karen Cannell TH Technology

How APEXBlogs was built

Professional Diploma in Web Designing

Tutorial: World League Finance e-learning platform

Oracle Application Express 5 New Features

About the Presenter. John Peters, JRPJR, Inc. Primarily Technology Focus

PowerPoint 2010 Quick Start

An Oracle White Paper April Oracle Application Express 5.0 Overview

Jquery Ajax Json Php Mysql Data Entry Example

WEB SECURITY WORKSHOP TEXSAW Presented by Solomon Boyd and Jiayang Wang

TeamViewer User Guide for Microsoft Dynamics CRM. Document Information Version: 0.5 Version Release Date : 20 th Feb 2018

edev Technologies integreat4tfs 2015 Update 2 Release Notes

Utilising the data attribute. adding client side behaviour in Oracle APEX

IOTAP Sharepoint Customizations

Connect to CCPL

Remote Tracker Documentation

Oracle Applications in a Changing Business World. Legacy Oracle Applications Won't Be Around Forever. Will You?

Quick XPath Guide. Introduction. What is XPath? Nodes

EBS goes social - The Triumvirate Liferay, Application Express and EBS

UNITED NATIONS DEVELOPMENT PROGRAMME

DATASTREAM CHART STUDIO GETTING STARTED

& ( ); INSERT INTO ( ) SELECT

Programming with the Finesse API

What desktop integrations are available using Productivity Tools?

Poet Image Description Tool: Step-by-step Guide

Overview of the Adobe Dreamweaver CS5 workspace

Remote Health Service System based on Struts2 and Hibernate

django-session-security Documentation

Getting Started with. Microsoft Office 2010

SharePoint: Fundamentals

<Insert Picture Here>

PowerPoint Tips and Tricks

Figure 1 Forms category in the Insert panel. You set up a form by inserting it and configuring options through the Properties panel.

welcome to BOILERCAMP HOW TO WEB DEV

Skills Exam Objective Objective Number

SharePoint: Fundamentals

All Applications Release Bulletin January 2010

HOW THE INTEGRATION WORKS HOW THE INTEGRATION WORKS MICROSOFT DYNAMICS

Going to the Grid: What the APEX 5.1 Interactive Grid Means or You and Your Users. Karen Cannell

WeCode. Brought to you by CitrixNChill

The ROI of UI Toolkit Standardization

Oracle APEX Overview. May, Copyright 2018, Oracle and/or its affiliates. All rights reserved.

Each query has a list of five associated links: Purpose, Detail, HTML, Excel, and Favorites.

Create Open Data with Google Analytics. Open Data Day 2019

Help Manual. Personal DataPublisher For Outlook & SharePoint

QlikView Full Browser User Manual. User Manual

Create and Share Compelling Documents with Word 2010

Getting Started With the Responsive Design Framework Add-on for WebFOCUS App Studio Release 8.1 Version 05

SKILLBUILDERS CALENDAR

Rapid Application Development with APEX 5.0

De La Salle University Information Technology Center. Microsoft Windows SharePoint Services and SharePoint Portal Server 2003

Connect to CCPL

CUSTOMER PORTAL. Custom HTML splashpage Guide

Front End Programming

Oracle Application Express Workshop I Ed 2

APEX Times Ten Berichte. Tuning DB-Browser Datenmodellierung Schema Copy & Compare Data Grids. Extension Exchange.

Faculty Quick Guide to Blackboard. Blackboard Version 9.1. Christine Paige Educational Technology Specialist.

Migrating Complex Oracle Forms Applications to APEX: Utopia or Reality?

Web & APP Developer Job Assured Course (3 in 1)

MOBILIZE YOUR ENTERPRISE WITH TELERIK SOLUTIONS

DOWNLOAD OR READ : THERE IS NO EDGE PDF EBOOK EPUB MOBI

Automation with Meraki Provisioning API

Adobe Marketing Cloud Best Practices Implementing Adobe Target using Dynamic Tag Management

Design Importer User Guide

APEX as frame for Forms. AGENDA 1. History 2. Modernization four steps Value Upgrade APEX-FORMS Web-Mashup Mobilization 3. Summary 4.

HOW THE INTEGRATION WORKS HOW THE INTEGRATION WORKS INFOR CRM

You CAN Judge a Book by Its Cover: Modern User Interface Design Principles

Microsoft Office 365 Forms

Quick Reference Guide SharePoint Quick Reference Guide

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

Developing Both Responsive and Position-based mlearning and elearning Easily. mlearning: Tips and Techniques for Development and Implementation

Transcription:

Iframes when necessity calls for them Speaker Mirela Georgescu Date 22-03-2018 Email mirela.georgescu@transfer-solutions.com WWW.TRANSFER-SOLUTIONS.COM

Profile 1995 Founded In a close relationship with our clients we deliver excellent, full-service IT in order to help them to reach their goals. 15+ Mln. revenue 150+ Employees 20+ APEX experts Core values Collaboration Respect Pragmatism Loyalty 2 2

APEX Services Cloud / onpremise management Training Pragmatic approach Instant business value Complete support for implementation possible Application management Development mobile & web apps (App factory) 3 3

Outline Intro When? Why? What? How? Communication Add iframes Iframes and APEX Save Success- and error messages Conclusions 4

Intro - Why this presentation? You re the voice of reason. Stupid iframes. So difficult and don t communicate with each other. Transfer Solutions APEX special interest group 5

Intro - History of the solution The beginning: 2014 APEX 4.2 Requirements: 3 mouse clicks good performance good UX 6

Intro - History of the solution Options: PL/SQL region Dialog Iframes Too complex Not user friendly Performance drawbacks Use APEX functionalities Divide the complexity 7

Intro - History of the solution Same-origin policy Bits of information, scarce in combination with APEX http://hardlikesoftware.com/weblog/2015/05/22/apex-5-0-dialogs/ http://www.aaronpeters.nl/blog/iframe-loading-techniques-performance Team 8

When start with iframes? Experience in jquery / JavaScript Best practices Time 9

Why using iframes? Lots of information Fast No effort (not many clicks) Dynamic content Inter-dependent content 10

What are iframes? Pages <body> <iframe name="framefrm_3061" src="f?p=100:100:15730403415750::no:1152:p1152_id:3061&cs=dkva " > #document <html>. </html> </iframe> <iframe name="framefrm_3062 src="f?p=100:100:15730403415750::no:1152:p1152_id:3062&cs=3dna8fu " > #document <html> PARENT </html> </iframe> </body> $( iframe[name= framefrm_3061 ] ) window.frames[ framefrm_3061 ] IFRAME IFRAME 11

Communication - HTML, APEX items PARENT Iframe to parent: parent.$(.t-body') parent.$( #P100_EDITABLE_FRAME_ID') IFRAME IFRAME Parent to iframe: $( iframe[name= IFR_123 ] ).contents().find('.t-body') Iframe to iframe: through the parent parent.$( iframe[name= IFR_123 ] ).contents().find(.t-body ) 12

Communication functions, triggers Iframe to parent: parent.p0100.handlerefreshregions(); parent.$( #P100_VESSEL').trigger( apexrefresh ); Parent to iframe: window.frames['framefrm_3061'].apex.submit( SAVE ); window.frames['framevarious'].$('#p1043_rln_id').trigger('apexrefresh'); PARENT IFRAME IFRAME Iframe to iframe, through the parent: parent.window.frames['framefrm_3061'].apex.item('p100_rln_id').setvalue( 123 ); Alternative: jquery postmessage plugin at https://github.com/cowboy/jquery-postmessage/ custom events 13

How - to add iframes? 1. Create url using apex_page.get_url select t.id..., apex_page.get_url ( p_page => m.app_page_id, p_clear_cache => m.app_page_id, p_items => P m.app_page_id _ID, p_values => t.id ) as url APEX Report Region Row 1 Row 2 Row 3, FRM t.id as frame_name... from my_table t, my_metadata m... 15

How - to add frames? 2. Add the url as data attribute In the template Column HTML expression APEX Report Region Row 1 Row 2 Row 3 <div class="framediv" data-iframe-url="#url#" data-iframe-name="#frame_name#"></div> 16

How - to add frames? 3. Dynamic action to add the iframe element $(document).on('click', '#ROTATION_REPORT.myArrowDown', function () { var framedif = $(this).closest('.framediv'); if (framedif.find( iframe ).length == 0){ framedif.html('<iframe name="frame' + framedif.data('name') APEX Report Region Row 1 <iframe name="frame1" src="http://...1"></iframe> Row 2 } + '" class="hidden" src="' + framedif.data('url') + '"></iframe>'); Row 3 }); 17

How - to add frames? 4. Resize iframe when finished loading APEX Report Region Row 1 <iframe name="frame1" src="http://...1"></iframe> Row 2 APEX Report Region Row 1 APEX iframe page Row 3 Row 2 Row 3 18

How - to add frames? 4. Resize iframe when finished loading IFRAME var iframes = { "triggerresize" : function(){ var e = $.Event( "resizeiframe", { iframename: window.name } ); PARENT var parentpage = { "bindresizeiframe" : function(){ $('body').on('resizeiframe', function(e){ }} parent.$('body').trigger(e); var iframe = $('iframe[name="' + e.iframename + '"]'); var winheight = iframe.contents().find('.t-body').height(); iframe.closest('. framediv ').height(winheight); }); }} Called in IFRAME page template: Execute when Page Loads iframes.triggerresize(); Called in PARENT page: On load parentpage.bindresizeiframe(); 19

Iframes and APEX Page load use APEX Automatic Row Fetch (recommended) do not use set_session_state Page process use custom PL/SQL process do not use Automatic Row Processing (Current version of data in database has changed since user initiated update process) Developer Toolbar 20

Save apex.submit All iframes at the same time On click of a button, as the user requests it Possible browser performance issues? Asynchronicity Previous iframe Good performance Save on the fly, non-invasive success messages Have to know which iframe to submit Have to know when to submit? No save action from user needed 21

Success- and error messages In the iframe In the parent Mini success message 1. All iframes at the same time On success On error (scroll? focus?) 2. Previous iframe On success? On error On both 22

Conclusions Large part of APEX can be used, should be used as much as possible? Iframes can be tamed, but it comes with challenges No low-code application, Javascript / jquery knowledge needed 23

We proudly present our 3 sessions at APEX World 2018! Thursday 13:30 Dynamical OracleJET charts interactive and compelling, but also complex (Lidewij van den Brink) 14:30 Iframes when necessity calls for them (Mirela Georgescu) Friday 10:40 Oracle APEX goes viral the antidote to the most commonly used word processor (Arjan van der Palen, Pieter Brekelmans (NVIC))

Questions Answers CONSULTING MANAGED SERVICES EDUCATION WWW.TRANSFER-SOLUTIONS.COM 25