Skip to main content

APEX 5 New Calendar Features

While playing around in the APEX 5 EA2 environment I discovered a few neat little features for Calendar regions.

First of all you can export the data of the calendar - only the data that's currently visible - to four types of format. Especially the iCal format is new and interesting as this is readable by most calendar applications. Right now, in EA2, the PDF option doesn't seem to work yet. And alas, the iCal format is not readable by the Apple Calendar - but I hope that'll be fixed when the product becomes available! It is promising nevertheless....

Another cool feature is the Google URL. You can enter a URL of a public Gcalendar (or your private calendar if you want to) and your appointments will show up in your APEX application (see the green entries in the screenshot below)!

And last but not least : You can add your own (or someone else's) RESTful webservice feed to the calendar as well. By defining your own Resource Handler using a query to return a JSON string, you can add even more data sources to your calendar. The purple entry below is created by the SQL statement:

select 'Presentation APEX5 Hidden Features' as "title"
,      sysdate - 0.5/24 as "start"
,      sysdate + 0.5/24 as "end"
from dual


The JSON format is fixed, so we have to embed the columns in quotes to get a proper SQL statement (otherwise we are using reserved words and return uppercase attribute names).


Comments

Popular posts from this blog

Filtering in the APEX Interactive Grid

Remember Oracle Forms?

One of the nice features of Forms was the use of GLOBAL items. More or less comparable to Application Items in APEX. These GLOBALS where often used to pre-query data. For example you queried Employee 200 in Form A, then opened Form B and on opening that Form the Employee field is filled with that (GLOBAL) value of 200 and the query was executed. So without additional keys strokes or entering data, when switching to another Form a user would immediately see the data in the same context. And they loved that.

In APEX you can create a similar experience using Application Items (or an Item on the Global Page) for Classic Reports (by setting a Default Value to a Search Item) and Interactive Reports (using the APEX_IR.ADD_FILTER procedure). But what about the Interactive Grid? There is no APEX_IG package ... so the first thing we have to figure out is how can we set a filter programmatically?

Start with creating an Interactive Grid based upon the good old Employees tab…

Adding items to your Interactive Grid Toolbar

The APEX Interactive Grid uses the Toolbar widget to create the default Toolbar showing the Search box, Actions menu, Save button etc. And since quite a while there is a nice Plugin "Extend IG Toolbar" by Marko Goricki that makes it very easy to add additional buttons to the Toolbar.

But what if you need more than a button? 
Inspecting the contents of widget.toolbar.js, you can easily spot there can be added more to the Toolbar than just a button: The type of control, available values:
"STATIC", "TEXT", "SELECT", "BUTTON", "MENU", "RADIO_GROUP", "TOGGLE".
The first example will show a way to easily switch from one filter to another. Of course we could use the standard functionality and create two different Report views, but using a Radio Group on the Toolbar gives a more "Tab" like user experience.

So how can we create a Radio Group that looks like a switch in the Toolbar?
In the Javascript Code …

Using Static Files in APEX has never been easier !

Almost every APEX Developer knows that JavaScript and CSS belongs in separate files and (in 99% of the use cases) not somewhere in your Page properties. If you have this code in separate files it is easier to use them in a Version Control System (SVN or Git) - if the files are outside of APEX. And the code you store in these files can be reused, in contrast to the stuff you store on Page level.In a lot of environments it is harder to use external files, because deployment of these files to the appropriate location on a webserver requires special privileges that not everybody has. In those cases storing these files as Static Application Files or Static Workspace Files might be a better solution. It makes deployment easier, because these files will be exported and imported as part of the application. You can't accidentally forget about them. But working with these files is quite a pain. When you need to edit something you have to download that file, make the changes, upload it again …