Table of Contents:

2.2.X to 2.3-M1

2.3-M1 to 2.3-M2

Impacting Changes

Notes on Other Non-Impacting Changes

KULRICE-8427 - Session Support

In order to take advantage of the new session support functionality, you must add the following filter to your web.xml file. In addition, the filter must be first in the list of filters (before the login filter).

  <filter>
  	<filter-name>ajaxSessionTimeoutFilter</filter-name>
  	<filter-class>org.kuali.rice.krad.web.filter.UifSessionTimeoutFilter</filter-class>
  </filter>
 
  <filter-mapping>
    <filter-name>ajaxSessionTimeoutFilter</filter-name>
    <servlet-name>krad</servlet-name>
  </filter-mapping>

2.3-M2 to 2.3-M3

KULRICE-8926Convert default login screen to KRAD
KULRICE-8431 - perform expression evaluation once per view lifecycle

 

KULRICE-5391 - Add messages to lookup results

KULRICE-5287 - Lookup - Need export on results table

KULRICE-9469 - Exception will be thrown if page in page
KULRICE-7998 - Dirty field plugin eliminated and replaced with KRAD implementation
KULRICE-9595 - Avoid running scripts on non-visible content
KULRICE-9693 - View header and top group update on page change
KULRICE-9694 - Implement both local and ajax requested Json data generation for datatables (RichTable)
KULRICE-9598 - Validation framework improvement to cut data that is determined to be default
KULRICE-9606 -  Make property for retrieving groups via ajax for lightbox display - add useAjaxCallForContent flag

 

Changed addLineLabel from Label to Message on CollectionGroup

2.3-M3 to 2.3-RC1

KULRICE-8433 - Removed quickfinder and inquiry initialization from data and input field beans

In order to improve performance by thinning out the view graph, the quickfinder and inquiry widget initialization was removed from Uif-DataField and Uif-InputField.

This means if you were using nested properties to configure these widgets that will now throw a NPE. 

Ex. quickfinder.render="false", quickfinder.dataObjectClassName="edu.iu.TravelAccount"

Instead, you must fully initialize and configure the widget.

 <property name="quickfinder.dataObjectClassName" value=""/>
 <property name="quickfinder.fieldConversions">
     <map>
       <entry key="number" value="field3"/>
     </map>
</property>
 
converts to:
 
<property name="quickfinder">
    <bean parent="Uif-QuickFinder" p:dataObjectClassName="org.kuali.rice.krad.demo.travel.account.TravelAccount"
          p:fieldConversions="number:field3"/>
</property>
<property name="inquiry.dataObjectClassName"
          value="org.kuali.rice.kim.impl.identity.PersonImpl" />
<property name="inquiry.inquiryParameters">
    <map>
      <entry key="routeHeaderInitiatorWorkflowId" value="principalId1" />
    </map>
</property>
 
converts to:
 
<property name="inquiry">
   <bean parent="Uif-Inquiry" p:dataObjectClassName="org.kuali.rice.kim.impl.identity.PersonImpl" 
         p:inquiryParameters="routeHeaderInitiatorWorkflowId:principalId1"/>
</property>

Automatic quickfinders and inquiries will still be associated when relationships are found, and the widget is not manually configured. To disable automatic functionality use the flags: enableAutoQuickfinder, enableAutoInquiry, enableAutoDirectInquiry 

p:quickfinder.render="false"
 
converts to:
 
p:enableAutoQuickfinder="false"

The initialization of the quickfinder widget on collection groups has also been removed. This means if you were setting p:collectionLookup.render="false" to remove it you no longer need to do so.

<property name="collectionLookup.dataObjectClassName" value="org.kuali.rice.krms.impl.repository.CategoryBo"/>
<property name="collectionLookup.fieldConversions" value="id:id,name:name,namespace:namespace"/>
 
converts to:


<property name="collectionLookup">
   <bean parent="Uif-CollectionQuickFinder"
         p:dataObjectClassName="org.kuali.rice.krms.impl.repository.CategoryBo"
         p:fieldConversions="id:id,name:name,namespace:namespace"/>
</property>

 

KULRICE-9612 - Copying of components reimplemented to use copy method on component

For performance reasons the use of CloneUtils for copying components was replaced with copy methods on each component. If you have created any custom components you should override the copyProperties method and copy the properties specific to the subclass.

    /**
     * @see org.kuali.rice.krad.uif.component.ComponentBase#copy()
     */
    @Override
    protected <T> void copyProperties(T component) {
        super.copyProperties(component);

        TextControl textControlCopy = (TextControl) component;

        textControlCopy.setSize(this.getSize());
        textControlCopy.setMaxLength(this.getMaxLength());
        textControlCopy.setMinLength(this.getMinLength());

        if(datePicker != null) {
            textControlCopy.setDatePicker((DatePicker)this.getDatePicker().copy());
        }

        textControlCopy.setWatermarkText(this.getWatermarkText());
        textControlCopy.setTextExpand(this.isTextExpand());
    }

Make sure to call super, and to invoke copy() on all nested components.

KULRICE-8910 - Bootstrap added as default library, Fluid removed
KULRICE-9238 - Changes to view theme and new theme builder

Along with bringing in Bootstrap, the view theme was reworked to support Less and to fix previous pain points. This mostly only impacts those who are creating custom themes.

Switching to use non minified files

By default the themes will use the minified versions of the theme CSS and JS files. If you wish to use the full source files for development purposes, set the Rice config properties 'krad.dev.mode' to true in your local config file.

New Theme Beans

The beans Uif-BaseTheme, Uif-KradTheme, and Uif-ClassicKnsTheme have been removed. If you were previously extending one of these for a custom theme, you should now extend Uif-KbootTheme.

Building Kboot

If you are using maven overlays to acquire the KRAD web content (recommended), the Kboot theme will be ready for consumption. If instead you are acquiring the KRAD web content by manually pulling source, you will need to add the theme builder plugin to your maven process. See 'pom.xml' in the KRAD Web module for an example.

Building Custom Themes

Documentation will be coming shortly in the KRAD guide for developing custom themes. In the meantime, look at the JavaDocs for ViewTheme, and ThemeBuilder in the new KRAD theme builder module.

KULRICE-9238 - Improved web asset handling

To support the new theme builder some of the KRAD web resources were moved. This includes all plugins moving from '/krad/plugins' to '/plugins'. Any resources being referenced from these directories will need to be updated.

KULRICE-9883 - coerceValue JS Function will return boolean values
KULRICE-8930 - rowCssClasses revamp for TableLayoutManager and LightTable

Non-Impacting RC1 Changes to be Aware Of

PropertyPlaceholderConfigurer support added to the data dictionary. This means you can use ${} expressions to reference Rice config properties (useful for configured paths, these will only get evaluated once as opposed to the @{} UIF expressions which get evaluated many times)

CssGridLayout was added a new layout with two types - Fixed and Fluid.  It has a demo in the KRAD library example app.

Performance boosts to validateForm and validateLine calls

Suggest functionality will work in a lightbox/dialog

Problems with sub collections in nested groups refreshing resolved

2.3.0 to 2.3.1

KULRICE-9918 - Provide a way for application modules to specify their own custom document types for notifications generated for them by KEN

The NotificationContract implementing classes now have a new field called "docTypeName" which allows implementers to specify custom document types for different notifications. This field is not required, and if it is left blank, it will default to the document type "KualiNotification". Current notifications already in the system will default to this as well and not be affected.

KULRICE-10102 - Update KIM permissions for edit document in master data source

The script corrects some issues with permissions that were causing maintenance documents to still be editable after submit (see KULRICE-9643)

To apply this change, run the SQL in scripts/upgrades/2.3.0 to 2.3.1/db-updates/2013-08-08.sql (for Oracle) or scripts/upgrades/2.3.0 to 2.3.1/db-updates/mysql-2013-08-08.sql (for MySQL).

KULRICE-10180 - Database changes for KULRICE-10175

This script adds an optional DOC_TYP_NM column to KREN_NTFCN_T.  See KULRICE-9918 for details.

To apply this change, run the SQL in scripts/upgrades/2.3.0 to 2.3.1/db-updates/2013-08-14.sql (for Oracle) or scripts/upgrades/2.3.0 to 2.3.1/db-updates/mysql-2013-08-14.sql (for MySQL).

KULRICE-9034 - KR-KRAD - RESULTS_LIMIT parameter should be added and the code should be changed to use it

The script adds a new system parameter to configure the default lookup results limit in KRAD.  The parameter's namespace is KR-KRAD, the component code is Lookup, and the parameter name is RESULTS_LIMIT.  The default value for this new parameter is 200.

To apply this change, run the SQL in scripts/upgrades/2.3.0 to 2.3.1/db-updates/2013-08-14b.sql (for Oracle) or scripts/upgrades/2.3.0 to 2.3.1/db-updates/mysql-2013-08-14b.sql (for MySQL).

KULRICE-9887 - KRMS Attribute with name 'peopleFlowName' has invalid namespace

The script corrects the namespace for this KRMS attribute definition from "KR_RULE" to "KR-RULE".

To apply this change, run the SQL in scripts/upgrades/2.3.0 to 2.3.1/db-updates/2013-08-23.sql (for Oracle) or scripts/upgrades/2.3.0 to 2.3.1/db-updates/mysql-2013-08-23.sql (for MySQL).

KULRICE-10251 - Maintain KRMS Agenda permission has confusing and unused permission detail

The script removes the permission detail from the permission called "Maintain KRMS Agenda" in the "KR-RULE-TEST" namespace.

To apply this change, run the SQL in scripts/upgrades/2.3.0 to 2.3.1/db-updates/2013-08-23b.sql (for Oracle) or scripts/upgrades/2.3.0 to 2.3.1/db-updates/mysql-2013-08-23b.sql (for MySQL).

KULRICE-9142 - Modify the existing Recall permission to apply to RiceDocument

The script narrows the document type that the "Recall Document" permission applies to from "*" to "RiceDocument".  This allows applications to selectively apply it by adding additional permissions for other document types.

To apply this change, run the SQL in scripts/upgrades/2.3.0 to 2.3.1/db-updates/2013-08-23c.sql (for Oracle) or scripts/upgrades/2.3.0 to 2.3.1/db-updates/mysql-2013-08-23c.sql (for MySQL).

KULRICE-9998 - Country Name is defined as 40 characters in the database, but 50 characters in the data dictionary

The script extends the maximum size of a country name in KRLC_CNTRY_T to 255 characters (the column name is POSTAL_CNTRY_NM). 

To apply this change, run the SQL in scripts/upgrades/2.3.0 to 2.3.1/db-updates/2013-09-05.sql (for Oracle) or scripts/upgrades/2.3.0 to 2.3.1/db-updates/mysql-2013-09-05.sql (for MySQL).