[PLIP-Advisories] [Plone development workspace] #10888: Make KSS optional

Change notifications for Plone PLIPs on Trac. plone-plip-advisories at lists.plone.org
Fri May 18 13:55:14 UTC 2012


#10888: Make KSS optional
-------------------------+-----------------------
  Reporter:  davisagli   |      Owner:  davisagli
      Type:  PLIP        |     Status:  reopened
  Priority:  n/a         |  Milestone:  4.4
 Component:  KSS (Ajax)  |    Version:
Resolution:              |   Keywords:
-------------------------+-----------------------
Changes (by esteele):

 * priority:  major => n/a
 * status:  closed => reopened
 * resolution:  wontfix =>
 * milestone:  Future => 4.4


Old description:

> '''Proposer:''' David Glick[[BR]]
> '''Seconder:''' None as yet[[BR]]
>
> (This is an updated version of #8809...see there for previous
> discussion.)
> [[BR]]
> == Motivation ==
> KSS (kinetic style-sheets) were added to Plone 3 as a way to configure
> dynamic page functionality without writing javascript.  However, KSS has
> not seen the kind of widespread adoption inside or outside of the Plone
> community which warrant its inclusion in the Plone core.  In addition,
> JQuery has been shown to be an adequate framework for implementing the
> dynamic functionality of Plone itself, so including KSS by default is an
> unnecessary burden in terms of download size and performance.
>
> == Proposal ==
>
> I propose to turn KSS into an optional add-on that is available but not
> installed by default, much like plone.app.openid and CMFPlacefulWorkflow.
>
> Features of Plone that are currently implemented using KSS would be re-
> written as JQuery. I previously (in Plone 3) identified the following
> features that may need to be rewritten:
>
>  * inline editing
>  * inline validation
>  * lock on edit
>  * auto-refresh of portlets with a kssPortletRefresh class (yeah, I
> didn't know we had this feature either)
>  * updates to workflow state upon clicking in the workflow menu
>  * navigation of the calendar portlet to different months
>  * triggering of form tabbing and form unload protection after page load
>  * AJAX update of the sharing tab (I think this feature was already
> removed)
>  * folder_contents pagination and sorting
>
> Deliverables:
>
>  * branches of various Plone packages with the above features
> reimplemented without KSS
>  * new releases of plone.app.kss and archetypes.kss that can be used as
> dependencies by add-ons, and documentation on how to do this
>
> == Assumptions ==
> The goal here is to make it possible to use Plone without KSS, not to
> make it impossible to use KSS. As such, the intent is to produce releases
> of plone.app.kss and archetypes.kss that can be depended on by other add-
> ons that still rely on KSS.  These packages may still ship with Plone for
> the duration of the 4.x series, but would not be installed for new sites
> by default.
>
> The details of the approach to reimplementing Plone features in JQuery
> have not been decided. Eric Steele has done some experimentation with
> writing a parser for KSS rules in pure JQuery.  I will evaluate that, but
> will probably end up deciding that it is not worth keeping the KSS rule
> syntax, and do the configuration in JQuery as well.
>
> == Risks ==
>
> * Add-ons using KSS will need to be updated to explicitly depend on and
> install the packages that were previously included with Plone.
>
> * KSS may languish and die once it is not part of Plone core. (That is
> arguably not far from the status quo.)
>
> == Participants ==
> David Glick can help coordinate work on this PLIP, but will need
> assistance with the implementation.  Possible helpers: Eric Steele, Steve
> McMahon, Matt Yoder, Nathan van Gheem, others?
>
> == Progress ==
> Hanno previously experimented with removing KSS entirely in r25107, but
> this work is not directly usable as it removed a lot of functionality we
> don't want to.

New description:

 '''Proposer:''' David Glick[[BR]]
 '''Seconder:''' Eric Steele[[BR]]

 (This is an updated version of #8809...see there for previous discussion.)
 [[BR]]
 == Motivation ==
 KSS (kinetic style-sheets) were added to Plone 3 as a way to configure
 dynamic page functionality without writing javascript.  However, KSS has
 not seen the kind of widespread adoption inside or outside of the Plone
 community which warrant its inclusion in the Plone core.  In addition,
 JQuery has been shown to be an adequate framework for implementing the
 dynamic functionality of Plone itself, so including KSS by default is an
 unnecessary burden in terms of download size and performance.

 == Proposal ==

 I propose to turn KSS into an optional add-on that is available but not
 installed by default, much like plone.app.openid and CMFPlacefulWorkflow.

 Features of Plone that are currently implemented using KSS would be re-
 written as JQuery. I previously (in Plone 3) identified the following
 features that may need to be rewritten:

  * inline editing
  * inline validation
  * lock on edit
  * auto-refresh of portlets with a kssPortletRefresh class (yeah, I didn't
 know we had this feature either)
  * updates to workflow state upon clicking in the workflow menu
  * navigation of the calendar portlet to different months
  * triggering of form tabbing and form unload protection after page load
  * AJAX update of the sharing tab (I think this feature was already
 removed)
  * folder_contents pagination and sorting

 Deliverables:

  * branches of various Plone packages with the above features
 reimplemented without KSS
  * new releases of plone.app.kss and archetypes.kss that can be used as
 dependencies by add-ons, and documentation on how to do this

 == Assumptions ==
 The goal here is to make it possible to use Plone without KSS, not to make
 it impossible to use KSS. As such, the intent is to produce releases of
 plone.app.kss and archetypes.kss that can be depended on by other add-ons
 that still rely on KSS.  These packages may still ship with Plone for the
 duration of the 4.x series, but would not be installed for new sites by
 default.

 The details of the approach to reimplementing Plone features in JQuery
 have not been decided. Eric Steele has done some experimentation with
 writing a parser for KSS rules in pure JQuery.  I will evaluate that, but
 will probably end up deciding that it is not worth keeping the KSS rule
 syntax, and do the configuration in JQuery as well.

 == Risks ==

 * Add-ons using KSS will need to be updated to explicitly depend on and
 install the packages that were previously included with Plone.

 * KSS may languish and die once it is not part of Plone core. (That is
 arguably not far from the status quo.)

 == Participants ==
 David Glick can help coordinate work on this PLIP, but will need
 assistance with the implementation.  Possible helpers: Eric Steele, Steve
 McMahon, Matt Yoder, Nathan van Gheem, others?

 == Progress ==
 Hanno previously experimented with removing KSS entirely in r25107, but
 this work is not directly usable as it removed a lot of functionality we
 don't want to.

--

-- 
Ticket URL: <http://dev.plone.org/ticket/10888#comment:8>
Plone development workspace <https://dev.plone.org/>
Plone Enterprise Content Management System


More information about the PLIP-Advisories mailing list