Build beautiful and interactive API documentation for ORDS

Image
In this blog post, I will show you how to quickly build beautiful and interactive API documentation for your Oracle APEX REST data sources using  swagger hub . Using APEX v23.1. I downloaded the  titanic data set  and loaded them into tables in my APEX instance, created some authorized restful services and published them using swagger hub. You can create a free account on swagger hub.   Check out my titanic swagger hub here ; Press Authorize. Username REST, password Glasgow123! I won't go through creating RESTful services and just show you the four I created that sit on top of the titanic data set; The GET is a very simple SQL query;      select * from TITANIC_DATA_SET_NEW A handy tip is to add comments, as there will appear on swagger hub, making your API self documenting; Once you have created your modules, press the Generate Swagger Doc button; This will generate an open API for you.  Copy the API and paste it into swagger hub This will generate the documentation; As mentioned b

Oracle APEX Remove the aggregate totals column in an Interactive Grid

This post explains how to remove the Overall Average column on an IG when aggregates are added to an IG.  I am using APEX version 19.2 but this should work on all versions.  I added aggregates to my IG which gives me a row of averages at the bottom of the grid;

It also gives me a total averages column at the start of the grid;

There are 2 reasons I don't want this column.  Firstly, in my experience with this column its very buggy, as you can see in the picture below it causes the rows of the grid to get out of sync when sorting.  

Secondly I have a lot of columns and I want the grid to appear at 100% zoom on the browser with no scrolling and this column is taking up valuable retail space!

So.....how do we remove it?

In execute when page loads, add this JavaScript where rgBenchmarkingIG is the static ID of your Interactive Grid.

apex.region("rgBenchmarkingIG").widget().interactiveGrid("getCurrentView").view$.grid("option", "rowHeader", "none");

OK, now gone. But how does the user know that the totals at the bottom are averages?

We can use CSS to add the text Avg to the first column.  Usually first columns are names, links (like mine) etc, so we can put the text 'Avg' here ({content: 'Avg';}).  In Inline CSS add this;

#rgBenchmarkingIG_ig_grid_vc > div.a-GV-bdy > div.a-GV-w-scroll > table > tbody > tr.a-GV-row.is-aggregate.a-GV-aggregate--AVG.is-grandTotal > td:nth-child(1):after {content: 'Avg';}

Note  this is for averages (aggregate--AVG), you will need to change the CSS for sum etc.

This now tells the user the totals row is averages and gives us more space for the grid to fit on the page without scrolling;



Comments

Popular posts from this blog

Oracle APEX Interactive Grid colour cells based on a condition using JavaScript and CSS

Oracle APEX pretty checkbox item plugin

Build beautiful and interactive API documentation for ORDS