|
|
WebGUI 7.0 Questions |
| Info on 7.x as I hear it...
wg-fomATgwyDOTorg | |
| Subcategories:
Answers in this category: | |
| [New Answer in "WebGUI 7.0 Questions"] | |
|
|
When is 7.0 coming out? |
| It is out as of 7/5/2006.
wg-fomATgwyDOTorg | |
| [Append to This Answer] | |
|
|
What's supposed to be new in 7.0? |
| The most important change to 7.0 will be the workflow addition. This addition will enable events to be handled/triggered "behind the scenes" in an asyncronous manner. Some things like "What will happen after a user is subscribed" will be passed through the workflow. There will be much more, including a new SQL Form Asset, and a general clean-up of many of the RFE's that have been outstanding.
wg-fomATgwyDOTorg | |
WebGUI 6.99.0 Change Log
- Added a workflow system. - Added a workflow scheduler system. - Converted the runHourly.pl scripts to run as scheduled workflows. - Added version tags menu to admin bar. - Added versioning commit comments. - Removed autocommit mode in favor of workflow controlled commits. - Added a revisions list to the edit screen of assets, so that you can quickly edit/view an old revision. - Addded a lock menu item to explicitly lock an asset from editing. - Run on registration and alert on new user have been converted to a single workflow. - Added a Photogallery prototype to the default installation. - Changed the Group property dbCacheTimeout to be groupCacheTimeout and made it cache all the users in a group during that time. - Added an option for hosters to limit the number of assets that may be created on a WebGUI site. - Added a change url function that will allow an editor to change the URL of an asset permanently (circumventing normal versioning). - Added a wiki-like feature that will automatically bring a user to the create a page form if they are in admin mode, and click on a link to a page that doesn't exist yet. - Help is now capable of using inheritance. - Template help can/should now be broken out as seperate fields going forward. - Many changes for better XHTML compliance. - Refactored admin bar to be more dynamic. - Removed start/end dates from assets in favor of the workflow system. - Readded the purge option to the trash manager. - Added an advertising management system. - Added a field set grouping mechanism to HTMLForm and TabForm. - Added save buttons at the top of all the HTML forms for easier access. - Added archive/unarchive options to CS threads. - Added a mechanism to send emails to a CS which will accept them as posts. - Increased the performance of CS Thread viewing by 500%. - Changed the CS post rating mechinism to thumbs up/down to be less confusing. - Added CS templates to run a request tracker (trouble ticket) style system. - Updated TinyMCE rich text editor to version 2.0.5.1. - Disabled the rich editor for Safari because it doesn't work correctly. - Added install/uninstall functions to the asset and wobject skeletons to make custom assets easier to distribute. - Added a mechanism for importing and exporting packages. This is useful for trading styles and other content between sites. - Added a database cache option as an alternative to memcached. - Removed page caching system and added individual asset caches, because not everything should cache in the same way. - Converted WebGUI to use a new object oriented session system. More details in migation.txt. - Added a sort alphabetically option to the folder asset. - Added a User form field type. - Added a symbol next to items in the asset manager to indicate if they have children or not. - Added more templating options to the Paginator. (thanks to Jukka Raimovaara / Axxion Oy) - Added the currentPage.rank and currentPage.rankIsN variable to the nav template. (thanks to Jukka Raimovaara / Axxion Oy) - Added a screenshot feature to the matrix. - Added an option to delete Matrix fields. - Added a captcha challenge to the contact the maintainer form in the matrix. - Added an API for retrieving email from POP3 servers. - The rebuildLineage.pl script now finds and fixes orphans, and tries to locate circular relationships as well. - Added a lot more tests to the test suite. - Added a new pluggable templating system. (Thanks to Misja Op de Coul / E-Wise) - Added "201" http status to various entity creation responses. - Replaced the old search engine system with a brand new one, that is more powerful, easier to use, and more flexible. - Added output chunking as an option for asset www_ methods. The net effect of this provides a fairly significant performance increase to what would otherwise be slow or complex pages. More details in migration.txt. The amount of the increase depends upon the complexity of the page, but now complex pages should render almost as fast as simple pages. - Removed the JavaScript, RawHeadTags, and StyleSheet macros in favor of adding a Head Block parameter to templates. This was needed in order to implement content chunking. - The SMTP mail backend has been replaced with a new API that's capable of sending attachments, HTML messages, and more. This will introduce many new options for developers. - Replaced the old Message Log system with a new Inbox system that's more reliable, and scalable. - Added a mail queue system. - The group mail screen now allows sending of HTML messages. - Added prequery statements to the SQLReport and configurable allowed statements to the database link properties. (Martin Kamerbeek / Procolix) - Converted config file format from PlainConfig to JSON. The new format is more powerful and will use slightly less memory. - Strengthened security of Captcha validation. - Added Captcha form control type. - All IPs used by WebGUI (Settings: debugIp and Group: ipFilter) now accept IP addresses in CIDR format. They also will accept multiple IP addresses if they are separated by commas. Whitespace is ignored. The upgrade script will migrate the data automatically, and hoverHelp documentation has been updated to reflect the changes as well. - The Rich Editor now has a master reset that allows disabling any individual Rich Editor across the entire site without querying the user. - Commit options have been removed from the Asset Manager "More" and Wobject type icon context menus. - The Navigation Asset now allows setting the MIME type of its output so that you can generate non-HTML navigations or take advantate of the Google SiteMap feature. - Add tests that verify the integrity of the WebGUI Database. - Added a karma ranking system to CS threads for conducting popularitycontests. - The main page for the Help system is now a "Table of Contents" with a tabbed view to make scanning for content easier. - Help for forms now shows the fields that you should see with your UI level. There is a link to show all fields. - Added SQL Form and error feedback for asset addition (Martin Kamerbeek/Procolix) - Added file upload ability to the rich text editor (Wouter van Oijen/ProcoliX) - added [ 732011 ] http header cache setting - added [ 810556 ] larger value field in userSessionScratch table - added [ 881817 ] allowed characters in username - added [ 1231386 ] Insert WebGUI Image - added [ 1205807 ] ability to report file size in File template - added [ 1201811 ] resizable textAreas - added [ 1376374 ] WebGUI should return a Last-Modified http/1.x header - added [ 1216059 ] Admin Bar Made Sticky - fix [ 1471218 ] 6.8.8: Unable to change Default Home Page - fix [ 1481787 ] autocomplete in user editing screens - fix [ 1445002 ] Field(s) fail to delete - fix [ 1344318 ] utf8 support for uri_escape/URL::Escape - fix [ 1466255 ] 6.8.8 Typo in package WebGUI::Operation::FormHelpers - fix [ 1463411 ] Denied content not getting expired or trashed - fix [ 1461522 ] 6.8.7 Linking items in the page tree (PDF and other files) - fix [ 1465280 ] BR Tag in Outlook - fix [ 1178981 ] IE is in "quirks mode" - multi-column layout templates break - fix [ 999590 ] Rating - fix [ 1410577 ] WebGUI::Session not included - fix a bug where a link was provided to become or delete non-existant users. - fix bugs with the in-memory session caching of user and group memberships - fix [ 1465362 ] RichEditor doesn't work on Safari - fix [ 1344665 ] Cache does not remember mimetype - fix [ 1172613 ] Header Tag Not Accessibility Friendly - fix [ 1340839 ] If can't use item in adminConsole don't display it - fix [ 1473937 ] scratch->set not taking. - fix [ 1471909 ] createAccountSave not called - no validate email (Martin Kamerbeek / Procolix) - fix [ 1479779 ] enable select box in dataform (Martin Kamerbeek / Procolix) - fix [ 1478585 ] purgeRevision without warning or confirmation (Martin Kamerbeek / Procolix) - fix [ 1480536 ] "Add Files" link in Folder template doesn't work (Martin Kamerbeek / Procolix) - fix [ 1443373 ] 6.8.7 Events Calendar Dates Incorrect (Wouter van Oijen / ProcoliX) - fix [ 1444918 ] 6.8.7 Events Calendar - Year old events show in list view (Wouter van Oijen / ProcoliX) - fix [ 1452552 ] Events Calendar starting from the wrong day with Now! (Wouter van Oijen / ProcoliX) - fix [ 1452719 ] Event calendar, wrong day of week for date (Wouter van Oijen / ProcoliX) - fix [ 1470410 ] Problems with Calendar (Wouter van Oijen / ProcoliX) - fixed a caching bug for Events Calendar (Wouter van Oijen / ProcoliX) - Added a graphing engine and tied it into the Poll asset (Martin Kamerbeek / Procolix) - Added Slider form controls (IntSlider, HexSlider and SelectSlider) (Martin Kamerbeek / Procolix) - Fixed a number of bugs in DateTime.pm wg-fomATgwyDOTorg | |
| [Append to This Answer] | |
|
|
HOWTO: Javascript Form Validation of Required Fields |
| For those of you (like me) who are using WebGUI to help manage forms which _don't_ get processed by WebGUI - (like FormMail/BFormMail) - you may run into an IE problem with the new WebGUI. Formmail/BFormmail doesn't check the required fields until you submit your results - and that works fine - except that if you use the back button to go back to your form in IE - it will CLEAR all of the contents of that form. One way to fix this is to disable the new caching code in WebGUI - but a better way is to improve the form validation for non-webgui forms. I didn't know how to do this - so I taught myself enough javascript to get by, and I wrote a nice templated approach to this which I'm proud of, so thought I'd share it with you all. :) What you need: You'll need either a few javascript functions added to any javascript file you're including, or you'll want to add them to your page style. function FieldRequired(ss) { switch(ss.type)
{
case "radio": { return CheckRequired(ss); break; }
case "select-one": { return SelectionRequired(ss); break; }
case "text":
case "textarea": { return ContentRequired(ss); break; }
default:
{
if (ss[0].type == "radio")
return CheckRequired(ss);
break;
}
}
return true;
}function ContentRequired(ss) { if(ss.value.length > 0) { return false; } return true; } function CheckRequired(ss) { for(var i = 0; i < ss.length; i++) { if(ss[i].checked) { return false; }
}
return true;
}function SelectionRequired(ss) { for(var i = 0; i < ss.length; i++) { if(ss[i].selected) {
if(ss[i].value.length) { return false; }
}
}
return true;
}The above routines all do the checking - FieldRequired() takes any form object and then determines whether it's a radio button, text object, select list, etc and checks it accordingly. Now.. the cool bit - in your form template you need to add the following: <SCRIPT language="JavaScript1.2"> function CheckRequiredFields() { var errormessage = new String(); // Put field checks below this point. <tmpl_loop field_loop>
<tmpl_if field.isRequired>if(FieldRequired(document.bformmail.<tmpl_var field.name>)){ errormessage += "\n * <tmpl_var field.label> is a required field."; }</tmpl_if>
</tmpl_loop>
// Put field checks above this point.
if(errormessage.length > 2) {
alert('You still have required fields remaining:\n' + errormessage);
return false;
}
return true;
} // end of function CheckRequiredFields()
</SCRIPT>The above code uses templates to iterate through each field and if it's a required field then add javascript code to check it. If the field isn't filled in/checked/selected/etc then it adds it to a growing error message which lists all the fields not entered. If you're using the tab form object then you need to change the loop slightly: <SCRIPT language="JavaScript1.2"> function CheckRequiredFields() { var errormessage = new String(); // Put field checks below this point. <tmpl_loop tab_loop>
<tmpl_loop tab.field_loop>
<tmpl_if tab.field.isRequired>if(FieldRequired(document.bformmail.<tmpl_var tab.field.name>)){ errormessage += "\n * <tmpl_var tab.field.label> is a required field."; }</tmpl_if>
</tmpl_loop>
</tmpl_loop>
// Put field checks above this point.
if(errormessage.length > 2) {
alert('You still have required fields remaining:\n' + errormessage);
return false;
}
return true;
} // end of function CheckRequiredFields()
</SCRIPT>Now.. the final bit - and the most cruicial. In your <form action=xxx statement you need to add two things - one - a name (in my code above I assume the name is bformmail - but you can change this to whatever you want as long as it is unique), and secondly you need to add the onsubmit code to call the above javascript code. <form name="bformmail" onSubmit="return CheckRequiredFields();" method="post" action="/cgi-bin/BFormMail.cgi"> Your method and action can differ, but if you use the above code as is, then the other two need to be the same. The onsubmit code is what sets it all off - it calls the template generated code which in turns calls those javascript routines to check the fields. The great thing about this is that it leverages the power of webgui and uses templates to do the work for you :) Hopefully someone else can get some use out of this other than me. You could also extend this to do dynamic inserts into each form object and put images/text next to each required field that failed or something like that. I haven't gotten that far yet but it's something I'll probably look at in future. This could also be applied to regular webgui forms too if you really wanted, but there's not much point as they work pretty well as is. Cheers, Jesse JesseATjugaDOTorg | |
| [Append to This Answer] |
| Previous: |
|
| Next: |
|
| ||||||||