Table of Contents
Welcome to Rice 2.2.1-SNAPSHOT!
This version of Rice includes many improvements to the Kuali Rapid Application Development (KRAD) Framework. Below is a summary of the larger new features and you can learn more about them in the KRAD Guide which is also now publicly available with this release. Also review the Jira list at the end of tis document to see the smaller items.
Highlights of this release include:
Kuali Rice 2.2.1-SNAPSHOT can be downloaded from the Rice website at http://kuali.org/rice/download.
There are three different distributions of Rice available: source, binary and server. Please read the Installation Guide for more details on each of these distributions.
Applications can also consume Rice from the maven site at http://search.maven.org/#search|ga|1|org.kuali.rice.
API Documentation can be found at http://site.kuali.org/rice/2.2.1-SNAPSHOT/apidocs/index.html
Formal documentation can be found at http://site.kuali.org/rice/2.2.1-SNAPSHOT/reference/html/portal.html. This documentation is still in the process of review and update which will continue through subsequent releases, so please follow the notes in each document to report any outdated information.
If you encounter any difficulty, please don't hesitate to contact the Rice team on
our public collaboration mailing list at <rice.collab@kuali.org>
.
Please indicate that you are using the 2.2.1-SNAPSHOT version of Rice.
We recommend backing up your database before performing any upgrade!
MySQL and Oracle scripts for performing these updates are available in the following locations in the Rice distribution downloads:
scripts/upgrades/2.1 to
2.2/final/update_final_mysql.sql
scripts/upgrades/2.1 to
2.2/final/update_final_oracle.sql
With the 2.2-m1 release are two scripts that will automatically convert changed bean names, property names, and CSS classes. These scripts are located in the Rice project within folder: scripts/bean-rename These are groovy scripts. To run a groovy script:
Download groovy at: http://groovy.codehaus.org/Download?nc
Follow the install instructions at: http://groovy.codehaus.org/Installing+Groovy
Change into the directory which contains the script, then run with 'groovy scriptname.groovy'
The first conversion script is named BeanRename.groovy and renames bean ids and property names. This will find all XML files in the directory from which the script is run, and all sub-directories. Therefore you should first copy BeanRename.groovy and the file beanReplacements.txt to the directory which contains your UIF XML files, then run from that directory. Please note if you have XML files that contain KNS definitions (such as the LookupDefinition or MaintainbleDefinition), this conversion script should not be run on those files. The second script is named CssRename.groovy and renames CSS classes. This will find all CSS files in the directory from which the script is run, and all sub-directories. Therefore you should first copy CssRename.groovy and the file cssReplacements.txt to the directory which contains your CSS file, then run from that directory.
[KULRICE-3148] - Frame resizing does not work with standalone Rice
[KULRICE-5276] - KRAD - KS Test Views - Lightboxes need to reference KS stylesheets
[KULRICE-5345] - Add ability to identify new lines in collections
[KULRICE-5519] - View-level action buttons misaligned
[KULRICE-5813] - KRAD: 2-Month Date Picker only displays current year in dropdown.
[KULRICE-5889] - Need "infinite scrolling table" in kitchen sink
[KULRICE-6375] - Something is going on with Page refreshes.
[KULRICE-6401] - Excessive blank lines (myplan)
[KULRICE-6402] - <link> tag in HTML 4 Trans. doesn't need / to close tag (myplan)
[KULRICE-6404] - Invalid comment declaration - double hyphens appear in <!-- comment -->
[KULRICE-6405] - Block-level inside elements appear inside inline elements
[KULRICE-6406] - HTML entity for & needed
[KULRICE-6407] - Empty <ul class="errorLines">
[KULRICE-6408] - HTML output quality
[KULRICE-6411] - Character Encoding Statement Needed
[KULRICE-6515] - Dirty fields check does not work for all pages of a view
[KULRICE-6627] - Invalid CSS on error field style display
[KULRICE-6638] - Changed indicator not appearing on maintenance sections
[KULRICE-6661] - Client side validation errors not getting removed when value changed with a date picker
[KULRICE-6666] - Validation causes Javascript error with an addLine containing a checkbox or radio
[KULRICE-6731] - Values are not being held when using checkbox group or radio controls
[KULRICE-6732] - UserControl (Uif-Kim-PersonControl) causes JavaScript Error
[KULRICE-6765] - Incorrect list item selector
[KULRICE-6775] - fixed and floating point pattern constraint allow integers
[KULRICE-6776] - inquiry screen close button does nothing
[KULRICE-6810] - People Flow Inquiry doesn't work
[KULRICE-6831] - Inner scroll bar on firefox
[KULRICE-6834] - Bugs with date picker
[KULRICE-6835] - Issues with client side validation
[KULRICE-6845] - Problems with UifBeanFactoryPostProcessor expression handling that is causing bean property overrides (such as fieldInquiry.render) to not work
[KULRICE-6855] - Travel Account Maintenance document routes to exception
[KULRICE-6861] - JS error with refreshWhenChanged
[KULRICE-6901] - Label for adding multiple records on Term Specification maintenance document refers to "Account Lines"
[KULRICE-6905] - Blanket Approve of document asks the user if they should Stay on Page or Leave page
[KULRICE-6910] - Doc type handlers for KRAD maintenance doc types are not correct
[KULRICE-6926] - KRAD bookstore sample app -- the Book Order Request can't be viewed by any of the provided Rice user names
[KULRICE-6959] - Datatables includes the add line in the number of records message
[KULRICE-6966] - Logic in html tag doesn't allow external scripts or CSS to be included
[KULRICE-6976] - Scrollbar issues with datatables
[KULRICE-6978] - Setting perform collection call on line action field overrides configured client side JS
[KULRICE-7016] - Getting Null Pointer Exception randomly in KRAD
[KULRICE-7026] - Alter behavior of client side validation
[KULRICE-7027] - After using the date picker focus should return back to the input control
[KULRICE-7053] - spring expression error on refresh
[KULRICE-7058] - Required field getting removed on collection refresh
[KULRICE-7065] - Uppercasing not working
[KULRICE-7066] - Issue when two quickfinders on same view have different lookup configuration
[KULRICE-7077] - Agenda Editor: Invalid property fieldLabel of bean class MessageField
[KULRICE-7110] - Conditional requirement bug in a Collection's addline
[KULRICE-7121] - error on deleting a row from a sub collection
[KULRICE-7130] - Asterisk should not be displayed for read only fields
[KULRICE-7132] - Property type 'Date' in UifFormBase cannot be nulled out if value exists
[KULRICE-7134] - Datepicker error messages are not removed after a date has been picked
[KULRICE-7143] - click on cancel button, validation warning appears and you remains on the page
[KULRICE-7144] - You can enter letters and special characters in Uif-InputField with TimePatternConstraint
[KULRICE-7162] - MessageMap.putError/Info/Warning breaks if the messageKey string contains a single-quote
[KULRICE-7188] - Travel Account type gives an exception when editing a Travel account
[KULRICE-7209] - Agenda Editor: Javascript errors
[KULRICE-7219] - Pass title through to all tags
[KULRICE-7221] - Progressive disclosure within collections throwing exception
[KULRICE-7225] - Fix iframe resize problem in chrome
[KULRICE-7228] - Javascript error on lookup view
[KULRICE-7256] - Multivalue lookup return not refreshing
[KULRICE-7261] - Datepicker - InputField not properly updated when format is "mm-dd-yy" and input field is bound to a Date
[KULRICE-7265] - Multi-Value Lookup return selected not posting
[KULRICE-7268] - Create New link missing on PeopleFlow Screens
[KULRICE-7270] - Cannot Create new Term with UI
[KULRICE-7271] - Cannot Create new Agenda
[KULRICE-7280] - After downloading an attachment, exception is thrown on any action
[KULRICE-7285] - No ids for caption header on Image elements
[KULRICE-7287] - Conflicting Ids when a page change follows a view refresh
[KULRICE-7288] - Fieldset needs unique id
[KULRICE-7295] - Help icon no longer can be clicked in disclosure headers
[KULRICE-7310] - Can't change only month or year with picker (jquery limitation)
[KULRICE-7313] - Validation message text not wrapping in section-level (and page-level) summaries
[KULRICE-7314] - Validation message summary background doesn't disappear when empty (when all validation messages are removed from the summary)
[KULRICE-7320] - Help: Suppress tooltip help when render is set to false
[KULRICE-7338] - NPE when trying to search for person
[KULRICE-7340] - JS error on kitchen sink collections page
[KULRICE-7355] - Ambiguous method call in MessageMap.addGrowlMessage()
[KULRICE-7360] - Growl not working with MessageMap().addGrowlMessage()
[KULRICE-7365] - refreshWhenChangedPropertyNames bug in 2.2.0-M1
[KULRICE-7383] - Breadcrumbs on form views not working correctly
[KULRICE-7384] - Problem with reloading dictionary and expression factory
[KULRICE-7385] - Breadcrumb not displaying correctly on Lookups
[KULRICE-7389] - Travel Account Lookup page not rendering in IE (9)
[KULRICE-7399] - fix unit test failures
[KULRICE-7407] - Problems when postedView is null
[KULRICE-7416] - Maintenance document upgrade tool ignore packages
[KULRICE-7417] - Collections - table layout sequence column is editable
[KULRICE-7418] - Edit maintenance docs - added collections causes old/new items alignment to be out
[KULRICE-7428] - Duplicate error messages on collections within a subcollection
[KULRICE-7430] - Collection with in subcollection - Add row should not be added to the collection if it has errors
[KULRICE-7432] - Error dialog, such as, 'Required' in a date field, blocks the date pick to pick the date
[KULRICE-7439] - Assignment of "Add Message to Route Log" permission to the KR-SYS technical administrator is missing from bootstrap dataset
[KULRICE-7444] - Change css import order to import base.css after jquery ones
[KULRICE-7457] - Drop down lists do not highlight the item user is selecting on Chrome
[KULRICE-7463] - Validation messaging - info missing in section headers & incorrect # of validation messages
[KULRICE-7467] - Lightbox - scrollbar is included in lightbox with iframe when not needed (all content in view)?
[KULRICE-7468] - Collections UI - autosorting should not be on by default (in adding to collections/sub-collections)
[KULRICE-7477] - Lightbox - Div structure / CSS class support for lightbox
[KULRICE-7482] - Disclosure Collections not working in IE
[KULRICE-7489] - RichTable widget for collections does not display the paging buttons
[KULRICE-7532] - required validation fails in StackedCollectionSubSection addLine
[KULRICE-7547] - Kitchen sink other fields page not rendering fully
[KULRICE-7555] - console is undefined error in IE8
[KULRICE-7572] - Error message isn't working on MaintenanceView
[KULRICE-7576] - javascript error when closing lightbox
[KULRICE-7586] - ConversionNotSupportedException error when working with Uif-SecondaryActionButton-Small
[KULRICE-7589] - applyDefaultCellWidths property on table layout manager is not working properly
[KULRICE-7592] - Suggest query not working correctly with custom service method
[KULRICE-7596] - Tables in Collection test view not highlighting on hover of delete button
[KULRICE-7602] - Dialog Response HTML inputs have same id
[KULRICE-7603] - Add Blank Line and Add Via Lightbox for Table Layouts not highlighting new row
[KULRICE-7606] - Using Uif_TableCollectionSection, can't make table data read only
[KULRICE-7623] - Current page not being highlighted in navigation menu
[KULRICE-7625] - Dirty fields warning appears when returning from a lightbox
[KULRICE-7639] - Edit, Copy, or View Agenda in sampleapp yields stacktrace
[KULRICE-7652] - Add Blank Line at bottom Table Layout doesn't go to next Page
[KULRICE-7656] - Tool Tip Errors Preventing Use of Lookup
[KULRICE-7657] - KRAD Travel Maintenance Docs (new and edit) bomb with error on submit
[KULRICE-7670] - The use of the "All Day" check box is off
[KULRICE-7671] - Add via Light box not retaining the information
[KULRICE-7678] - KRMS: initAgendaTree not defined
[KULRICE-7679] - KRMS: failed loading resources on Agenda
[KULRICE-7686] - Left hand menu longer than content window cut off
[KULRICE-7693] - expressions in nested bean definitions not processed
[KULRICE-7697] - DictionaryValidationService does not validate CaseConstraint correctly
[KULRICE-7705] - Create new PeopleFlow Member lookup throws NPE
[KULRICE-7725] - KRMS Agenda lookup throws Exception
[KULRICE-7729] - KNS Screens throwing HTTP 500 Error with Stack Trace
[KULRICE-7731] - Validation messages Get Warning+Info Messages does nothing or results in method POST not supported stacktrace
[KULRICE-7735] - Exception when trying to add a note
[KULRICE-7746] - Rice 2 Error on adding an Ad Hoc Recipient most of the time
[KULRICE-7752] - UifDataAttributesIT testDataAttributesPresentInControls textInputField_attrs_control: complex data attributes script not found
[KULRICE-7754] - Progressive disclosure via ajax not working in Kitchen Sink
[KULRICE-7764] - Render template not being found in unexploded war
[KULRICE-7767] - Error tooltips not getting cleared on page change
[KULRICE-7771] - Breadcrumbs keep adding on for each dialog response
[KULRICE-7772] - Client side validation no longer properly notifies the user with a popup nor jumps them back to the page error list
[KULRICE-7778] - Required message pops up on field and not removed
[KULRICE-7787] - href in maintenance record lock error displays as string instead of link
[KULRICE-7794] - ignoreValid class not present on FieldGroups in collections
[KULRICE-7795] - messageMap being undefined
[KULRICE-7806] - UifControllerHandler afterCompletion should check for empty views
[KULRICE-7807] - stackedList.jsp still referenced
[KULRICE-7808] - 20px padding to the right on body style
[KULRICE-7809] - krad.validate.js 624 Cannot read property 'messageMap' of undefined in Validation Framework Demo get Error Messages
[KULRICE-7831] - Rice 2 docs - Ad Hoc Recipients tab collapses after selecting 'person' value from pop-up
[KULRICE-7834] - Freemarker is formatting non-string types
[KULRICE-7835] - expressions not being evaluated on line actions within a collection
[KULRICE-7837] - Stacktrace on Using application header with new Freemarker Template file (MyplanApplicationHeader.ftl)
[KULRICE-7838] - " propertyEditor " property is setting the returned value inside a <span></span>
[KULRICE-7839] - Travel Account Maintenance new and edit throw exception Error getting property 'layoutManager.sequenceFieldPrototype.inquiry.directInquiryAction.actionImage
[KULRICE-7846] - PeopleFlow create new Error getting property 'layoutManager.sequenceFieldPrototype.inquiry.directInquiryAction.actionImage'
[KULRICE-7849] - Properties on DataTable need to assign CSS to TD content (currently assigning CSS to both parent DIV and contained TD)
[KULRICE-7852] - Maintenance smoke test failures
[KULRICE-7854] - NPE on Externalizable Dataobject lookup (person)
[KULRICE-7858] - Using a navigation action in a collection causes duplicate ajax submits
[KULRICE-7859] - Spring Expressions in render property not working as expected
[KULRICE-7860] - KRAD Lookup window - too small to be useful.
[KULRICE-7871] - Checkbox and Radio Group ids are not correct
[KULRICE-7886] - Clicking on rich labels for checkbox items is not checking the box
[KULRICE-7887] - Subcollections in Details that have their own Details have 2 details links
[KULRICE-7888] - Css box layout classes are appearing more than once in items of a collection
[KULRICE-7889] - Client-side summaries on save feature lost
[KULRICE-7890] - Links for errors do not jump correctly to the fields in question, but rather jitter and jump to the top of the page
[KULRICE-7892] - JS error on kitchen sink collections page
[KULRICE-7898] - Checkbox control label rich message support
[KULRICE-7908] - Getting type mismatch exception in logs for FieldGroup from freemarker
[KULRICE-7910] - Internet Explorer IE does not perform ajax refresh/retrieval correctly
[KULRICE-7912] - Various css issues with deployed version of KRAD (not local versions)
[KULRICE-7913] - Collection Save line button not enabling when changes to the line are made
[KULRICE-7914] - JS Error on collection test view Save tab
[KULRICE-7916] - Add via lightbox action does not stop on client errors
[KULRICE-7917] - inquiry link on related object opens a lookup
[KULRICE-7919] - setting readonly attribute value in template
[KULRICE-7924] - KRMS Agenda type select option not rendered w/o using Context lookup
[KULRICE-7928] - initBubblePopups function significantly reduces performance in some browsers
[KULRICE-7936] - KRMS Agenda SimpleAgendaCompoundProp Rule edit throws exception in pageD
[KULRICE-7966] - Lookups throw Request method 'POST' not supported
[KULRICE-7968] - Error/Warning message does not display when the page is refreshed -->triggered by p:refreshWhenChangedPropertyNames and p:methodToCallOnRefresh
[KULRICE-7973] - Add via lightbox not stopping on validation errors
[KULRICE-7977] - For delivered Rice, Person Lookup not pointing to the lookup Controller
[KULRICE-7984] - Binding prefixes (#lp, #dp, #line) not working with property replacer condition
[KULRICE-7995] - Multiple problems with dialog test view
[KULRICE-7996] - Progressive disclosure and refresh within table not working
[KULRICE-7997] - Quickfinder lightbox too small
[KULRICE-8007] - Buttons throw Request method 'POST' not supported at
[KULRICE-8057] - PeopleFlow member add exceptions
[KULRICE-8058] - PeopleFlow Type progressive disclosure throw Error invoking fetching method
[KULRICE-8059] - PeopleFlow Member Delegates Member Type selection errors.
[KULRICE-8069] - Fix smoketests broken by line aware UifActionDefinitions
[KULRICE-8072] - Strange behavior with add lines on collection test view
[KULRICE-8080] - elements are created with duplicate html ids
[KULRICE-8081] - Problem with 'no tooltips' in validation framework demo
[KULRICE-8082] - Deleting a collection line doesn't remove the line only the data
[KULRICE-8088] - Creating new peopleflow and selecting type id throws exception
[KULRICE-8101] - Expressions not evaluated on tooltip content
[KULRICE-8104] - Changing PeopleFlow Member Type results in errors
[KULRICE-8107] - Progressive disclosure will probably have issues with line validation - untested
[KULRICE-8136] - Investigate DataDictionarySearchableAttributeTest.testWildcardsAndMultiSelectsOnDDSearchableAttributes failure
[KULRICE-8137] - Agenda Rule edit Incident report Invalid property 'refreshWhenChanged'
[KULRICE-8140] - Investigate Server Warnings
[KULRICE-8155] - JS error going to collections page
[KULRICE-8160] - NPE at TableLayoutManager.buildLine(TableLayoutManager.java:341) for create new context
[KULRICE-8162] - Configuration Test View Time Info add line button doesn't addline
[KULRICE-8163] - Configuration Test View Conditional Options doesn't change Field 2 options based on Field 1 selection
[KULRICE-8164] - SOAPServiceTest.testWsdlGeneration integration test failing.
[KULRICE-8167] - KRMS Agenda Editor: Buttons on the rule Tree are still enabled after the Agenda is submitted
[KULRICE-8172] - Need MaintenanceRouteLogLegacyIT running
[KULRICE-8175] - Image w/in image buttons isn't horizontally aligned
[KULRICE-8221] - UifServletRequestDataBinder view.getId() Dead Code - Stack Trace
[KULRICE-8238] - Tree widget not working on Cache Admin page (or Kitchen Sink(s))
[KULRICE-8240] - Major issues with add line functionality and collection refresh
[KULRICE-8246] - Collections - datatable plugin not paging for first record over page limit
[KULRICE-8270] - KRMS Agenda Editor: Proposition Tree of Rule does not work properly
[KULRICE-8276] - RichTableTest unit tests failing
[KULRICE-8283] - Agenda Rule edit/add stacktrace - The problematic instruction: ---------- ==> include "${component.template}" [on line 32, column 13 in krad/WEB-INF/ftl/lib/template.ftl]
[KULRICE-8297] - IdentityRoleBlanketAppLegacyIT.testBlanketApprove iframe problem
[KULRICE-8319] - Expressions not being evaluated for components in a dialog group
[KULRICE-8346] - Clicking return value link on nested lookup opens in a new tab
[KULRICE-8350] - Breadcrumbs not rendering
[KULRICE-8353] - Lookup controller does not check return of validation call
[KULRICE-8379] - Invalid path for a image pecified in the Krad_2.2.0-M4.css on M4 update
[KULRICE-8381] - Id for an element is being appended with a '1' which is causing the scripts to stop working. After M4 upgrade
[KULRICE-8388] - Styles and Css Classes from Fields are copied onto their TDs in a collection
[KULRICE-8400] - JS error in adding note/attachment
[KULRICE-8406] - JS eror when hover over the help icons After M4 update
[KULRICE-8407] - Messagemap Message values(info,error,warning) are not displayed
[KULRICE-8410] - Trunk bugs Kitchen Sink Issue
[KULRICE-8420] - Horizontal layout does not work within a collection item
[KULRICE-8421] - Unexpected results from Uif-GridGroup
[KULRICE-8423] - Empty Actionlist throws screen error
[KULRICE-8439] - Required indicator not appearing on table headers
[KULRICE-8455] - Message for progressive disclosure appearing as 'null'
[KULRICE-8464] - Need to fix button labels for 'availableResponses' - Used to work before the last update.
[KULRICE-8467] - JS error in IE8 " Object doesn't support this property or method "
[KULRICE-8471] - richTable "aoColumnDefs" property problem in M4
[KULRICE-8474] - Components within collections getting duplicate suffixes
[KULRICE-8475] - Collections configuration test view: Refreshing stacked collection two times causes exception
[KULRICE-8480] - CriteriaLookupServiceOjbImplIntTest, RepositoryCreateAndExecuteIntegrationTest, IdentityServiceRemoteTest, UiDocumentServiceImplTest, ComparisonOperatorIntegrationTest and more fail during setup with No bean named 'Campus-code' is defined
[KULRICE-8486] - scrollTo no longer functioning
[KULRICE-8499] - Rice version is wrong in installation guide documentation for maven archetype (section 5, maven cli)
[KULRICE-8500] - Auto suggestion is throwing a stackTrace
[KULRICE-8504] - TableLayout Collection does not render correctly with separate add line
[KULRICE-8519] - PeopleFlow Create New: Notes and Attachments screen show's fields that should be readonly as editable.
[KULRICE-8520] - KRMS Agenda Inquiry throws Errors
[KULRICE-8526] - Type error trying to add collection line with minified script
[KULRICE-8534] - PeopleFlow Maintenance does not allow for Role selection
[KULRICE-8545] - Travel Account Maintenance (New) Document: Fiscal Officer Accounts Section Issue
[KULRICE-8546] - Travel Account Maintenance (Edit): Deleting a Fiscal Officer Account gives error
[KULRICE-8547] - FiscalOfficerInfo Inquiry 2: Throws error when clicking on the Accounts Tab
[KULRICE-8548] - Sample Travel Application: FiscalOfficerMaintenance DocTypes missing
[KULRICE-8549] - Dialog Test View: Displays Repsone in Lightbox throws error
[KULRICE-8550] - Uif Components (Kitchen Sink) Jump to and Focus links not working
[KULRICE-8557] - AbstractAgendaBoTest fails with Invalid locale code: Null
[KULRICE-8564] - Travel Account Maintenance (New) JS exception on Fiscal Officer Accounts Add button - Uncaught TypeError: Cannot call method 'element' of undefined http://env1.rice.kuali.org/krad/min/scripts/krad_2.2.0-rc1-r35849.min.js 439
[KULRICE-8580] - Jump action occurring on component refresh
[KULRICE-8581] - MessageServiceTests on Oracle fail with UncategorizedSQLException Non supported SQL92 token at position: 128: 0
[KULRICE-8582] - MessageBeanProcessorTests fail on MySQL with NoSuchBeanDefinitionException: No bean named 'Uif-KeyLabelPair' is defined and on Oracle with Non supported SQL92 token at position: 128: 0
[KULRICE-8593] - Unsaved data want to leave dialog when clicking button to add a new KRMS proposition.
[KULRICE-8599] - KRMS Agenda Campus type JS exception parent.jQuery.fancybox is not a function when no campus code is entered.
[KULRICE-8609] - KRMS Create new Term Specification UI layout Term Specification Section needs formatting
[KULRICE-8618] - Error icon wraps under control when in table cells
[KULRICE-939] - extract the functional configuration from the data dictionary and provide a user interface
[KULRICE-1147] - Extract and improve the portal from KFS into Rice
[KULRICE-1451] - error handling and user messages
[KULRICE-5570] - KRAD: need yellow highlighting on new collection items until saved (or submitted, if user doesn't save before submit)
[KULRICE-5984] - Lightbox improvements
[KULRICE-6327] - Tables with sub-collection tables - missing in KRAD
[KULRICE-6335] - Table sub-collections under table collections should be collapsible/expandable, and collapsed by default
[KULRICE-6454] - Rice Dev: PeopleFlow Maintenance create new shouldn't have direct inquiry option on Name
[KULRICE-6503] - p:fieldDirectInquiry.render="false" renders Direct Inquiry.
[KULRICE-6670] - Rice - KRAD Performance Improvements
[KULRICE-6829] - Bean render property is false, don't create empty span
[KULRICE-6859] - Add instructionalText.styleClasses property for custom styling
[KULRICE-6962] - Allow loading message to be configured on Action component
[KULRICE-6963] - Table layout manager requires the numberOfColumns to be set instead of using supressLineWrapping
[KULRICE-7068] - Add option to specify the loading message on action field
[KULRICE-7069] - Removing special Page refreshing and just use component refresh
[KULRICE-7073] - Add support for header groups which top, right, and bottom placement
[KULRICE-7115] - Add "listContains" and "emptyList" functionality to the subset of SpringEL supported by serer and client-side features
[KULRICE-7213] - Add before, inline, and after groups to header component
[KULRICE-7218] - Combine Inquiry and DirectInquiry
[KULRICE-7220] - Look into replacing component update process with full view lifecycle
[KULRICE-7286] - Tooltip swapping for controls (set tooltip content and validation message content)
[KULRICE-7341] - Make parent collection line (parent to a sub collection) available as an el variable
[KULRICE-7364] - "disabled" property improvements
[KULRICE-7393] - UI Framework - Add via editable blank line, no additional "add" required
[KULRICE-7394] - UI Framework - Add via lightbox
[KULRICE-7480] - Scrollable group control
[KULRICE-7485] - Create a new POJO for the Form Request Parameters
[KULRICE-7490] - Highlight collection when hovering on add button
[KULRICE-7567] - Adding anchor option to createLightBoxLink()
[KULRICE-7599] - Modify createLightBoxLink function to not set options['onCleanup'] = cleanupClosedLightboxForms by default
[KULRICE-7651] - Collection details: allow input fields and javascript content
[KULRICE-7699] - AttributeDefinition is missing SimpleConstraint
[KULRICE-7751] - Remove publishHeight script function call from timer
[KULRICE-7757] - View object pre-loading for components with propertyReplacer defined results in NPE
[KULRICE-7867] - Improve details to allow subcollections in their content
[KULRICE-7885] - Add rich message support to Labels
[KULRICE-7938] - Data for Creating a separate permission for accessing the new super user tab
[KULRICE-7949] - Expand detail link when detail group have validation errors
[KULRICE-7950] - Option to have detail group open by default
[KULRICE-7955] - Upgrade jQuery version from 1.7.2 to 1.8
[KULRICE-7961] - Improving selector code for popups
[KULRICE-8011] - Improvements to bubblepopup code
[KULRICE-8287] - Allow for use of rich messages in a header component
[KULRICE-8329] - Optimize performance of collection totaling and grouping
[KULRICE-8366] - Allow for routing to a dynamic list of people but only require one person in the list to approve
[KULRICE-8468] - Performance: Collect templates through view lifecycle and include once in view rendering
[KULRICE-8509] - Direct Inquiry with Wildcard * returns first record it finds or an error message
[KULRICE-8522] - KNS Theme - Table Header Style
[KULRICE-8523] - KNS Theme - Font size differences
[KULRICE-8524] - KNS Theme - Secondary button style
[KULRICE-8528] - KNS Theme - Informational Properties
[KULRICE-8530] - KNS Theme - Replace help image
[KULRICE-4629] - Rich UI Support
[KULRICE-5263] - KRAD: Need a Summary comparison display table
[KULRICE-5265] - KRAD: Need a table with selectable rows.
[KULRICE-5842] - All lookup, inquiry, help icon and other controls associated with an input field should be contained in <fieldset> tags with their input field, with the legend of the fieldset equal to the input field's label
[KULRICE-5983] - Tool tip addition
[KULRICE-5987] - Improvements for components/html elements in message content (links and etc)
[KULRICE-6671] - UI Framework - Framework code improvements
[KULRICE-6672] - UI Framework - Error Message architecture
[KULRICE-6673] - UI Framework - Tooltip (part of the Help Framework & used in the Error Message Architecture)
[KULRICE-6674] - UI Framework - Online Help architecture
[KULRICE-6675] - UI Framework - Configurable modal dialog (the back-end to support rich lightbox, question framework)
[KULRICE-6676] - UI Framework - Central Repository for Message Content
[KULRICE-6677] - UI Framework - Rich Message Content / Architecture
[KULRICE-6678] - UI Framework - State-based Validation
[KULRICE-6679] - UI Framework - View-only Access without Authenticating
[KULRICE-6680] - UI Framework - Data Dictionary Validation
[KULRICE-6752] - UI Framework - Keyboard Support
[KULRICE-7299] - UI Framework - Configurable modal dialog (the front-end to support rich lightbox, question framework)
[KULRICE-7324] - Add ability to specify table layout collections action column sequence
[KULRICE-7484] - Ajax Improvements- Add a preSubmitCall property to ActionField
[KULRICE-7561] - Allow an easy way to enable/disable controls and buttons clientside
[KULRICE-4707] - Hover over field level help with Dialog
[KULRICE-4728] - Reconcile Rice and KS data dictionaries
[KULRICE-5257] - Suggest Box - Improvements
[KULRICE-5281] - UIF Framework - Develop UifValidationService that will do validation
[KULRICE-5330] - Web files (css and JS) need to be combined and minified for war production deployment
[KULRICE-5371] - Uif Framework - Collections: Hook in authorization
[KULRICE-5372] - Add support for general content in lightbox
[KULRICE-5393] - Uif Framework - Better support for ajax posts and component refresh
[KULRICE-5532] - all radio and checkbox groupings should be contained in <fieldset> tags
[KULRICE-5584] - Design: inline validation with Tables.
[KULRICE-5990] - View content in iFrame analysis
[KULRICE-6298] - Remaining Issues from lightbox code review
[KULRICE-6384] - Work on packaging of web content for production deploy
[KULRICE-6639] - Add UifConstants to view context for el expressions
[KULRICE-6833] - Enable onclick event for Group components
[KULRICE-6841] - UIF Framework - Introduce the concept of data element attributes
[KULRICE-6860] - Add support for specifying multiple default values for an attribute definition or field
[KULRICE-6864] - Cleanup of UIF footer beans
[KULRICE-6960] - Change actionFieldPrototype for table layout manager base bean from vertical box layout to horizontal box layout
[KULRICE-7030] - Default action field prototype on TableLayoutManager bean to be horizontal layout
[KULRICE-7031] - Create javascript constants file
[KULRICE-7032] - Allow controller methods to return one way regardless of whether doing a refresh or full build
[KULRICE-7052] - Improve and automate collaboration options for downstream projects
[KULRICE-7055] - Change all jq and $ references to jQuery
[KULRICE-7136] - create summary documentation on krad tests
[KULRICE-7179] - Cleanup issues from Tooltip code review
[KULRICE-7186] - Change grid layout to generate td instead of th when only one cell is being rendered (and not first line)
[KULRICE-7203] - Go through KRAD script files and create constants
[KULRICE-7211] - Default datePicker widget disabled property to disabled property on control
[KULRICE-7212] - Onclick script not getting associated with correct control ids for checkbox
[KULRICE-7214] - Rename Application.jsp to AppViewContainer.jsp
[KULRICE-7215] - Cleanup of component property names
[KULRICE-7217] - Implement growls processing
[KULRICE-7226] - Sorting in rich table not working with specified sorting fields
[KULRICE-7302] - Selenium tests for Travel Maintenance Document
[KULRICE-7356] - General Lightbox Support
[KULRICE-7357] - Handle naming of JS files to avoid problems caused by cached JS files
[KULRICE-7388] - Analysis on portal implementations
[KULRICE-7550] - Fix progressive disclosure highlight animation styling
[KULRICE-7554] - Implement Dialog Group invocation mode
[KULRICE-7597] - Implement open link in lightbox functionality
[KULRICE-7598] - Implement Ajax Refresh Timer
[KULRICE-7682] - KRAD - Collections UI - Totals and Grouping
[KULRICE-7700] - Remove special data properties
[KULRICE-7737] - Update Install Documentation with maven archetype
[KULRICE-7895] - In env1, fieldsets have a border
[KULRICE-7901] - JSP templates replaced with Freemarker
[KULRICE-7944] - Change view pooling to use a thread pool
[KULRICE-8035] - Refactor BlanketAppIT tests to ReferenceCampusTypeBlanketAppIT pattern
[KULRICE-8068] - Add line number aware id for easier testing of UifActionDefinitions
[KULRICE-8131] - Move remaining test out of DocumentSearchURLParametersITBase as has been done with its subclasses
[KULRICE-8216] - Document Rich Messages Functionality
[KULRICE-8217] - Document Collections Grouping and Totaling Functionality
[KULRICE-8325] - Externalize text in script
[KULRICE-8326] - Externalize all dictionary text
[KULRICE-8399] - Agenda Editor: propositions do not work in 2.2-M4
[KULRICE-8430] - Sample application missing auth permissions in test environments
[KULRICE-8436] - KRAD dictionary beans cannot be overridden
[KULRICE-8442] - Module locking needs converted to FreeMarker
[KULRICE-8494] - Build test case of attribute query and custom method
[KULRICE-8531] - Link the KRAD Manual in the Rice Portal
[KULRICE-8533] - Generate minified files in a min directory instead of css
[KULRICE-8590] - Document UIF MessageView
The following changes impact KRAD UIF configuration (XML). Mostly these should be covered by the Bean/CSS conversion script documented in the Upgrade Guide section of this document.
Previously the component title property was be used for various purposes. For example on Containers the title was used as a shorthand for setting header.headerText. The title property should be getting passed to the template and used to populate the title attribute on the corresponding tag (for example on a group this would be the div). Therefore the change was made to pass this through and add to the tags. The container property 'headerText' was added as a shorthand for setting the header.headerText property. The bean conversion script converts title to headerText. However it must be used with care since this should only be converted on containers (view and group), and not other components (like image or link).
Many component property names were changed to better reflect their purpose. The bean conversion script will take care of renaming the properties in XML configuration. For a full listing of changed property names, see the project file 'beanReplacements.txt'.
To provide more flexibility for adding header content, three groups were added to the Header component. These groups correspond to their render position relative to the h tag (header text). The first is named upperGroup and will render above the header text. The second is named rightGroup and will render to the right of the header text. The third is named lowerGroup and is rendered below the header text. One or more of these groups can have content for a single header.
The previous Header group named headerGroup has been replaced by the lowerGroup. The bean conversion script will convert any configuration on headerGroup to lowerGroup. If the content was intended to align to the right of the header text, this will need to be manually changed to rightGroup.
Previously all HTML content was rendered through a Field component. The field wrapped the content with a span and could also render a label. For some content types this did not make sense (for example iframe, label, and header). In addition, for others it might be useful to have a label, but general not needed (link, action, image). Therefore a component type named ContentElement was introduced. A content element corresponds directly with the HTML content tag without additional wrapping. For the first set of fields described above (iframe, label, header), a content element was created and the field was removed. For the second set content elements were created, but the field component remains.
Mostly the impact of this was taken care of by the base bean definitions. In some cases the actual bean id changed which is handled by the bean conversion script. In cases where the field support remains but there is now a content element, application XML should be reviewed for places where it makes sense to change to the content element.
An effort begin towards the end of the 2.0 cycle to rework the KRAD CSS code. This began with implementing a naming convention and standard for applying style classes to components. This work was completed in 2.2 M1 with the rework of the style sheets. This included rewriting styles to correspond with the new classes and removing any old code. Changed style names within the UIF XML can be converted using the CssRename.groovy script. Custom style sheets will need to be updated manually.
Validation message handling has changed significantly in 2.2 M1. The new architecture addresses many issues, primary among these being accessibility. The ErrorsField component has been dropped and replaced with the ValidationMessages component (with subclasses PageValidationMessages, GroupValidationMessages, and FieldValidationMessages). Many properties of ErrorsField are no longer available. These changes include:
All original properties other than displayMessages, displayFieldLabelWithMessages (now section/page level only), and additionalKeysToMatch have been eliminated as they no longer serve a purpose in the new framework. Remove these properties from beans if in use.
2 new properties were introduced:
collapseAdditionalFieldLinkMessages (section/page level only) - for collapsing fieldLink messages in a summary for messages beyond the first for section level summaries. KRAD and UX recommended default is true.
useTooltip (field level only) - for using tooltip to display validation messages. KRAD and UX recommended default is true.
The way messages are displayed on the page and user interaction with these messages were changed heavily. These changes include:
Validation messages are summarized at the page level with links to sections which contain the messages
Validation message text for fields are links to those fields which will cause those fields to be focused
Validation message text is shown in tooltips for fields when focused or hovered over
When server errors are attempted to be fixed by the user, the field is marked as modified (if no client error persists)
When displayMessages flag switched to false, the framework will attempt to show the message content in the "next" available message area
When a user tries to submit a page that still has client-side errors the new summaries will appear
When a page has server side messages these new sumaries will appear
Various highlighting and color styling changes associated with the framework
See the Validation Framework demo view in the sample app to get a full demonstration of all new features introduced
Some property names have changed which is handled by the bean conversion script.
The help URL on the document and lookup level has been removed from the KEW document type. This means the "Help Definition URL" and the "Document Search Help URL" on the "Document Type" are depreciated and don't serve any function anymore. Instead the help URL are defined on the UIF-View level either within the data dictionary or the system parameters.
In 2.0, the Inquiry and DirectInquiry were separate widgets with separate properties on InputField. Therefore, when both were required both had to be configured with similar properties. This caused duplicate configuration. In 2.2, the DirectInquiry widget has been removed and the Inquiry widget supports rendering the direct inquiry when the field is not read-only. The direct inquiry behavior can be disabled with the Inquiry property enableDirectInquiry.
Any configuration referencing fieldDirectInquiry will need to be converted to the property named inquiry. Note if the standard inquiry and direct inquiry were both configured for a field, the direct inquiry can simply be dropped. If you were disabling the direct inquiry by fieldDirectInquiry.render="false", this can be changed to inquiry.enableDirectInquiry. The bean conversion script makes this change.
The process for adding growl messages server side has been modified. In 2.0, a growl was shown for each message in the GlobalVariables.getMessageMap() that was of type Info. The MessageMap has been enhanced to support a new growl type. For adding growls you now should call one of the following methods:
public void addGrowlMessage(String growlTitle, String messageKey); public void addGrowlMessage(String growlTitle, String messageKey, String... messageParameters); public void addGrowlMessage(String growlTitle, String growlTheme, String messageKey); public void addGrowlMessage(String growlTitle, String growlTheme, String messageKey, String... messageParameters);
No changes were made for adding growls client side (still call the method showGrowl(message, title, theme))
In Rice 2.0, a controller method needed to be built based on whether it would be called as part of a component refresh, or a full request. This was confusing as it required knowledge of the different refresh return method and prevented the method from being used for both types of calls. In 2.2, the controller methods no longer need to make this distinction. They can simply return the standard getUifModelAndView call for both component refresh and full requests.
Any controller methods that were returning updateComponent(uiTestForm, result, request, response) should be replace the return call with getUIFModelAndView(form).
The default layout for the action field group rendered by a table layout manager was changed from vertical box to horizontal box. This means for table with multiple line actions, the actions will now render in a horizontal row instead of vertical. If it is desired to have the actions align vertically, the actionFieldPrototype can be overridden.
In Rice 2.0 the Uif-FormView bean contained a footer defined that included the save, close, and cancel actions. The Uif-FormView bean has been changed to not include any footer actions by default. For these common actions, a bean named 'Uif-FormFooter' was created that can be used for a view or page when needed.
Renamed clientSideJs in Action.java to actionScript. Any client side javascript that the user needs to be executed will now have to be set using the "actionScript" property instead of "clientSideJs".
handleIncidentReport() in krad.message was changed so that it no longer replaces the view with the incident report. It checks if the content is incident report view and then returns true else it returns false. The view is now replaced by the updateViewHandler() in krad.ajax.
ajaxSubmitForm(methodToCall, successCallback, additionalData, elementToBlock, errorCallback) has been changed to ajaxSubmitForm(methodToCall, successCallback, additionalData, elementToBlock , preSubmitCall). This in turn calls the ajaxSubmitFormFullOpts(methodToCall, successCallback, additionalData, elementToBlock, errorCallback, validate,preSubmitCall, returnType).
The following new methods have been added to krad.ajax.js
1. actionInvokeHandler(component) - Instead of calling the jQuery('#kualiForm').submit(), it has been replaced by the actionInvokeHandler(component). Component is the element on which the action has been invoked. This method checks based on the data-attributes whether it is an ajax submit or a non ajax one and then calls one of the submit methods.
2. ajaxSubmitForm() - This in turn calls the ajaxSubmitFormFullOpts() with the validate flag set to false.
3. validateAndAjaxSubmitForm() - This in turn calls the ajaxSubmitFormFullOpts() with the validate flag set to true.
4. ajaxSubmitFormFullOpts() - Submits the form through an ajax submit, the response is the new page html runs all hidden scripts passed back (this is to get around a bug with premature script evaluation). It is similar to the old ajaxSubmitForm() but has some additional parameter which allow for providing hooks for successCallback,errorCallback and preSubmitCalls. It also takes a validate flag as well as a returnType. A returnType is used to request data from the server but the server may override it. If the validate flag is set it validates the form and proceeds if the form is valid. If a presubmit call is specified then it executes that and proceeds if it returns true. If the returnType is not given then it defaults to "update-page" and sets it on the data which will be submitted to the server. It then calls the invokeAjaxReturnHandler() to determine which handler function to call. The successCallback and errorCallback are handled as they were before in ajaxSubmitForm(). The elementToBlock and the lightBox processing remain the same.
5. submitForm() - This is used for non-ajax calls. This in turn calls the submitFormFullOpts() with the validate flag set to false.
6. validateAndSubmitForm() - This is used for non-ajax calls. This in turn calls the submitFormFullOpts() with the validate flag set to true.
7. submitFormFullOpts() - Does a non ajax submit. The data-attributes that are passed in as additional data are written as hidden params to the form before it is submitted.
8. invokeAjaxReturnHandler() - This method iterates over divs in the content that is passed in to determine which handler functions to call. The handler functions are initialized in krad.initialize.js
9. updatePageHandler() - Called if the returnType is "update-page". Finds the page content in the returned content and updates the page, then processes breadcrumbs and hidden scripts. While processing, the page contents are hidden (works similar to the the updatePageCallback()).
10. updateViewHandler() - Replaces the view with the given content and runs the hidden scripts. Called when the returnType is "update-view".
11. redirectHandler() - Called when the returnType is "redirect". Replaces the contents of the window with those of the redirected URL.
12. updateComponentHandler() - Called when the returnType is "update-component". Retrieves the component with the matching id from the server and replaces a matching _refreshWrapper marker span with the same id with the result. In addition, if the result contains a label and a displayWith marker span has a matching id, that span will be replaced with the label content and removed from the component. This allows for label and component content seperation on fields (Works the same as updateRefreshableComponentCallback)
Changes and removal of some methods in DictionaryValidationService (KRAD version) and ViewValidationService as a result of State based validation
Please see these classes for the changes made here. Some method signatures were changed for this support and some methods were removed for clarity.
KULRICE-7485 - Refactoring of Session Form Handling
Previously to clear (or reset) form properties between requests the postBind form method could be implemented. This method has been removed in M2. Now to indicate a property should not be persisted in session (thus reset for each request) the annotation @SessionTransient should be added before the property declaration.
KULRICE-7527 - Removal of some default nested beans
To help with performance, some nested beans that were being initialized in the XML were pulled out. In the code, if determined the component is needed, a call is made to then initialize the bean.
This means for these removed beans, if you were using the nested notation to set a property (for example, 'nested.property'), this will now throw an exception. You must first initialize the nested bean, then set the property. Note in cases where the default initialization was removed, a top level bean was created making it easy to initialize if needed.
The following nested beans were removed:
Uif-InputField - constraintMessage, instructionalMessage, and suggest property
Uif-Image - captionHeader and cutlineMessage property
Uif-Header* - upperGroup, rightGroup, and lowerGroup properties
All containers (Uif-Group, sections, subsections) - instructionalMessage property
Example Conversion
<bean parent="Uif-VerticalBoxSection"> <property name="header.upperGroup.items"> <list> ... </list> </property> </bean>
change to
<bean parent="Uif-VerticalBoxSection"> <property name="header.upperGroup"> <bean parent="Uif-HeaderUpperGroup"> <property name="items"> <list> ... </list> </property> </bean> </property> </bean>
KULRICE-7351 - JSP Templates converted to FreeMarker
For performance reasons the KRAD JSP templates were converted to use the FreeMarker templating language. Any custom components (or template overrides) that were created will need to be converted to FreeMarker.
See this page for a comparison of JSP and FreeMarker: https://wiki.kuali.org/display/KULRICE/Freemarker+and+JSP+comparison
Templates are associated with a component (bean) using two properties now. The first is the template property which gives the location of the template source. The second is the templateName property which is the name of the template to invoke (in FreeMarker this is the macro name). If you override one of the default templates, make sure to also give the template a unique templateName.
KULRICE-7246 - Default escapeHtmlInPropertyValue to True
For security reasons the escapeHtmlInPropertyValue property on DataField was defaulted to true. Therefore if you have a property which has HTML that should be rendered, you will need to set this property to false on the data field.
Loading the view object from bean definitions can take up to 4 or 5 seconds in some cases (although this is improving with the removal of default nested beans). To boast performance, an enhancement was put in to 'pre-load' the view objects. This means when the application starts up, it will fetch one or more view objects for a particular view and hold until a request is made. The number of views to preload is configured by the view property preloadPoolSize. This is set to 1 by default for all views except lookups and inquiries.
Setting Preload Pool Size
<bean id="CourseView" parent="Uif-FormView"> ... <property name="preloadPoolSize" value="3"/> </bean>
The views are loaded in a separate thread so the startup time is not impacted. Whenever a request for a view is made, a view from the pool is returned and a new view object is pulled in a separate thread to replace it. If no view objects exist in the pool at the time of a request, a call is made to build the view object. For high load views you can experiment with increasing the pool size so that a view is always available (Note a log statement is made when a view is not available from the pool, thus this can be used to help tune the parameter).
Note though storing the preloaded view objects consumes memory. In Rice (with Sampleapp) the storage was 91mb (and Rice does not have many views compared to what other applications like the KFS would).
In previous versions of Rice a user can keep requested view objects whose forms get added to the user session (note this is only for views that have session persistence enabled). Although there are clear points implemented, they do not catch many exit actions. Therefore more and more memory continues to be consumed, even though the user might be long done with the form.
To prevent this problem a configuration parameter was introduced that limits the number of forms per user session. The parameter name is maxNumberOfSessionForms and is set to 5 by default. This parameter can be tuned as needed however it is not recommended to go lower than 5 (think of nested lookups that might take place from a view).
Setting Max Form Storage Size in your rice config XML:
<param name="maxNumberOfSessionForms">10</param>
Whenever the number of session forms is greater than the configured maximum allowed, a form will be removed from the session. For determining which form to remove in these situations, the forms are arranged according to when they were accessed. In other words, the form whose last requested action time is oldest will be removed (most recently accessed forms will be kept).
Instructions on how to run the scripts to apply these database changes are in the Upgrade Guide in this document
The "Add Message to Route Log" permission assignment to the KR-SYS "Technical Administrator" role was present in the main 1.0.3.3 dataset but missing in the bootstrap dataset for 2.0.0. The sql script removes the permission from the role to make upgraded databases consistent with new ones.
A new message table and locale system parameter was added to support external messages.
To support guest access a new KIM user with id 'guest' was created along with a guest role.
New tables and sequences were added to the KRMS schema to support Type-Type Relations, Natural Language Translation, Reference Object Bindings features (Rice 2.x - KRMS for KS Analysis).
AjaxAction and its bean Uif-AjaxActionButton was removed. All bean references should change to use 'Uif-PrimaryActionButton' (ajax is the default now). The bean update script can be run to apply this change.
Property validatedLineActions on CollectionGroup was removed. Now actions that are defined in lineActions can have the property 'performClientSideValidation' flag set to true to indicate the line should be validated.
Removed MessageMap#public void addGrowlMessage(String growlTitle, String messageKey)
Removed MessageMap#public void addGrowlMessage(String growlTitle, String growlTheme, String messageKey)
Removed MessageMap#public void addGrowlMessage(String growlTitle, String growlTheme, String messageKey, String... messageParameters)
Use MessageMap#addGrowl(GrowlMessage growl)
Property labelKey of BaseConstraint (and therefore all constraints) was renamed to messageKey. The bean update script can be run to apply this change.
Property baselinePackages of DataDictionaryService was renamed to additionalDictionaryFiles. In addition changed from a List<String> to Map<String, List<String>> where the map key is the namespace the dictionary beans should be associated with.