
Well something somewhere froze over because I found enough time to get an updated version of my sample application zipped up and upload.
There are some of the new examples in this export.
- Minimal tagging functionality , along with an xml file to populate the tags table.
- Examples on how to use $x_Toggle $x_Hide $x_Show on Regions.
- Javascript code to enable/disable a shuttle item.
- Example of a function to quickly check a series of values html_CheckSome(pThis,pValues,pArray)
You can download it here http://apex.oracle.com/pls/otn/f?p=11933:22.
If you like the theme , and with my visual design skills who doesn't, make sure to grab it because this will be the last export that has that particular one.
As usual make sure to read the disclaimer because I 100% stand by it.
So I had a couple comments on my Accordion Implementation I whipped up the other day.
http://carlback.blogspot.com/2007/06/is-for-apex-and-accordion.html
Plus someone wanted to be able to initialize with a certain pane open and also to create the Accordion based off of regions not a report. So I took all that to heart and rewrote my implementation a bit plus some extras I wanted and you get.
Report Based Accordion
http://apex.oracle.com/pls/otn/f?p=11933:130
and Region Based Accordion
http://apex.oracle.com/pls/otn/f?p=11933:131
The onmouseover interaction now has a 1/2 second delay.
The object initialization is now a bit more robust with more options. Most of them have pretty normal defaults. The one I recommend setting everytime is OpenMaxHeight as it gives a more consistent user experience.
function pg_Init(){
pAccordian = new Accordion('accordion');
/* optional */
pAccordian.OpenType = 'onmouseover'; //onclick or onmouseover default = onclick
pAccordian.OpenMaxHeight = 150; // optional but recommended max height of opened pane
pAccordian.OpenPane = 1; // open Accordian pane on init 1 based array
pAccordian.class_Item = 'item'; // set the class to collect item item nodes
pAccordian.class_Title = 'title'; // set the class that collects title nodes
pAccordian.class_Title_Current = 'title_current'; // set the class to set current title
pAccordian.class_Content = 'content': // set the class that collects content nodes
/*init object*/
pAccordian._Init(pAccordian);
}
I'll probably be playing with this some more but I wouldn't be surprised if you saw a slightly altered version end up in product, declarative of course ;) , it seems like a good fit.
Now all I have to do is figure out how to type as fast as this guy plays a real Accordion and I could get some real work done.
I had someone internal at Oracle ask for an Accordion widget in APEX. I figured everybody else code use something like this so I figured I'd build out an example in the standard place.
I think the best and easiest way to do this is to base it on a Report Row Template.
There are some caveats to this example.
The first being that #REGION_STATIC_ID# isn't properly substituted in a Report Row Template, I put it in anyway since at some point it will be. All you have to do is surround the report with element with an id or give the report itself an id , this actually isn't a bad idea as I figure most people will only want one of these per page.
The second is if you put multiple accordions on a page the row id has to be unique which is pretty easy to do in the SQL statement.
The accordian can be instatied on page load like this
pAccordian = new Accordion('accordion',true);
The first parameter is the id for the surrounding element.
The second parameter chooses between firing onmouse over (true) or onclick (false).
So here you go,
http://apex.oracle.com/pls/otn/f?p=11933:130
Enjoy
Just a quick post on a handy online tool.
JSLint while writing javascript sometimes it's easy to take short cuts like if statements without brackets or not ending your lines with semicolons. Plus it's just nice knowing that your dotting your i's and crossing your t's.
I've used it before but after seeing again all the small errors in some of my javascript I've decided to specifically run all my code through it now as a practice.
Documentation : http://www.jslint.com/lint.html
Tool : http://www.jslint.com/
That's right people I've I have the hottest new product for the Oracle APEX community available now!
With some all new functionality but with that slick old school style.
You will receive a working AJAX based ranking system, a AJAX based commenting system (aka: shoutbox) and an reworked AJAX Collection Control (that actually works) plus many other features and enhancements.
! BUT THATS NOT ALL !
Starting with this version I'll also throw in a SQL scripts to install and deinstall all the objects needed to support this application , that's right no more hunting from page to page making sure the examples have the proper tables or procedures! You might ask yourself how can this get any better?
! WELL LET ME TELL YOU !
Sample Data! That's right not only do you get the application! Not only do you get the supporting schema objects! But if you act now you will get your very own copy of the sample data as seen on the Original OTN Sample Application
And what would you expect to pay for this? Hundreds? Thousands? No this is provided to you the people for free thats right absolutely free what can be a better deal than that!
Oh and I'll throw in a readme.txt file as well just because I like you ;)
Pick yours up today.
http://apex.oracle.com/pls/otn/f?p=11933:22
As posted here http://forums.oracle.com/forums/thread.jspa?messageID=1882652#1882652 I've updated the code for the wiki in the sourceforge project.
I'll be working on this as time permits over the next couple weeks to see if I can get it in a more workable/polished up state.
The toughest part as I've stated before is getting the Regular Expressions working right. I just don't have enough experience with them and it gives me different results depending on if I run it in sqlplus comparative to SQL Developer comparative to a PL/SQL function call in APEX. So any help or insite into this black art would be awesome.
So instead of continuing to bang my head on the wall over that (day after day) I'm going to be adding other features like a proper versioning system , file attachment to topics and better reporting and searching and organization features.
I've added two new features/examples to my Example Application and they can be found on right side of every page.
One is a Ajax based Commenting system and another is an Ajax based Rating system. They are both very simple to implement. Even though the ones I built are tied to Application and Page ID's the table structure can easily be adjusted to apply them to any situation.
A nice additions to these features would be to only allow for one rating per user per page and to automatically populate the comment authors name. This would require me to create a login which is just overkill for my example application but for anyone implementing these solutions it is defiantly features worth adding.
The code can be found on these two pages.
Rating System : http://apex.oracle.com/pls/otn/f?p=11933:5
Comment System : http://apex.oracle.com/pls/otn/f?p=11933:124
The commenting system is open so please use a little restraint in using it, I don't want to have to be spending to much time administrating comments at the same time commenting on my samples would help me and everybody else.
EDIT:
Talk about a timely article :) Study: 38 Percent Of People Not Actually Entitled To Their Opinion
Here is a preview of long promised Sticky Hide Show Region code example. The installable code example will be found on the Oracle Application Express Sample Code page in the next day or two.