[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