From: Jean-Michel F. <svn...@pl...> - 2011-01-22 16:51:12
|
Author: toutpt Date: Sat Jan 22 16:49:17 2011 New Revision: 230900 Added: collective.js.jqueryui/trunk/collective/js/jqueryui/condition.py collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/propertiestool.xml Modified: collective.js.jqueryui/trunk/README.txt collective.js.jqueryui/trunk/collective/js/jqueryui/configure.zcml collective.js.jqueryui/trunk/collective/js/jqueryui/profiles.zcml collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/cssregistry.xml collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/jsregistry.xml collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/metadata.xml collective.js.jqueryui/trunk/collective/js/jqueryui/upgrades.py collective.js.jqueryui/trunk/docs/HISTORY.txt Log: Add include condition to JQueryUI resources. Can be configured throw portal_properties Modified: collective.js.jqueryui/trunk/README.txt ============================================================================== --- collective.js.jqueryui/trunk/README.txt (original) +++ collective.js.jqueryui/trunk/README.txt Sat Jan 22 16:49:17 2011 @@ -16,6 +16,29 @@ To have an example of the current integration you can check @@example.jqueryui page +include condition and optimizations +=================================== + +By default this add-on add JQueryUI resources (js and css) on every pages, +but with an include condition that let you configure it. +It can be configured throw the portal_properties. + +If your website use jqueryui for only one view or template you can optimize it +by turning off the global include and add your templates. For example: + + <property name="global_include" type="boolean">False</property> + <property name="views_and_templates" type="lines"> + <element value="mytemplate_view"/> + <element value="@@myview"/> + </property> + +If you know you need jqueryui on all pages, the best solution is to remove the +expression condition on all jqueryui resources. + +TODO: +* add a plone control panel to swith to the best solution. +* use plone.app.registry + Credits ======= @@ -38,12 +61,5 @@ ======== JQueryUI > 1.8.6 is supposed to be compatible with jQuery 1.3.2. -On example page every things are working except Dialog. So at the -moment you would prefer use the 1.7.X version of jqueryui (same package -exists for 1.7 branch. - -Upgrade notes -============= - -If you used the ``withjqtools`` or ``withjqtoolsplone3`` profile in older -version, please use now the ``default`` profile. +At the moment you should prefer to use the 1.7.X version of jqueryui +(same package exists for 1.7 branch) Added: collective.js.jqueryui/trunk/collective/js/jqueryui/condition.py ============================================================================== --- (empty file) +++ collective.js.jqueryui/trunk/collective/js/jqueryui/condition.py Sat Jan 22 16:49:17 2011 @@ -0,0 +1,25 @@ +from plone.memoize.view import memoize +import logging +logger = logging.getLogger('collective.js.jqueryui') +from Products.CMFCore.utils import getToolByName +from Products.Five import BrowserView + +class IncludeJQueryUI(BrowserView): + """Used to know if jqueryui resources must be included""" + @memoize + def __call__(self): + pp = getToolByName(self.context, 'portal_properties').jqueryui_properties + if pp.global_include: + return True + + include_ids = pp.views_and_templates + context_state = self.context.restrictedTraverse('plone_context_state') + if context_state.is_view_template(): + template_id = context_state.view_template_id() + logger.info(template_id) + return template_id in include_ids + + current_url = context_state.current_page_url() + view_id = current_url.split('/')[-1] + logger.info(view_id) + return view_id in include_ids Modified: collective.js.jqueryui/trunk/collective/js/jqueryui/configure.zcml ============================================================================== --- collective.js.jqueryui/trunk/collective/js/jqueryui/configure.zcml (original) +++ collective.js.jqueryui/trunk/collective/js/jqueryui/configure.zcml Sat Jan 22 16:49:17 2011 @@ -44,6 +44,13 @@ /> <browser:page + name="jqueryui-include-condition" + for="*" + class=".condition.IncludeJQueryUI" + permission="zope2.View" + /> + + <browser:page name="example.jqueryui" for="*" class=".example.Example" Modified: collective.js.jqueryui/trunk/collective/js/jqueryui/profiles.zcml ============================================================================== --- collective.js.jqueryui/trunk/collective/js/jqueryui/profiles.zcml (original) +++ collective.js.jqueryui/trunk/collective/js/jqueryui/profiles.zcml Sat Jan 22 16:49:17 2011 @@ -47,5 +47,13 @@ profile="collective.js.jqueryui:default" handler=".upgrades.renaming_css_browserresource_188_189" /> + <genericsetup:upgradeStep + source="1890" + destination="1891" + title="add include condition" + description="" + profile="collective.js.jqueryui:default" + handler=".upgrades.upgrade_1890_1891" + /> </configure> \ No newline at end of file Modified: collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/cssregistry.xml ============================================================================== --- collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/cssregistry.xml (original) +++ collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/cssregistry.xml Sat Jan 22 16:49:17 2011 @@ -1,9 +1,9 @@ <?xml version="1.0"?> <object name="portal_css"> <stylesheet title="" cacheable="True" compression="safe" cookable="False" enabled="True" - expression="" id="++resource++jquery-ui-themes/sunburst/jquery-ui-1.8.9.custom.css" + expression="context/@@jqueryui-include-condition" id="++resource++jquery-ui-themes/sunburst/jquery-ui-1.8.9.custom.css" media="screen" rel="stylesheet" rendering="import" /> <stylesheet title="" cacheable="True" compression="safe" cookable="True" enabled="True" - expression="" id="++resource++jquery-ui-themes/sunburst-patch.css" + expression="context/@@jqueryui-include-condition" id="++resource++jquery-ui-themes/sunburst-patch.css" media="screen" rel="stylesheet" rendering="import" /> </object> Modified: collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/jsregistry.xml ============================================================================== --- collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/jsregistry.xml (original) +++ collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/jsregistry.xml Sat Jan 22 16:49:17 2011 @@ -1,9 +1,9 @@ <?xml version="1.0"?> <object name="portal_javascripts" meta_type="JavaScripts Registry"> <javascript cacheable="True" compression="none" - cookable="True" enabled="1" expression="" + cookable="True" enabled="1" expression="context/@@jqueryui-include-condition" id="++resource++jquery-ui.min.js" /> <javascript cacheable="True" compression="none" - cookable="True" enabled="1" expression="" + cookable="True" enabled="1" expression="context/@@jqueryui-include-condition" id="++resource++jquery-ui-i18n.js" /> </object> Modified: collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/metadata.xml ============================================================================== --- collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/metadata.xml (original) +++ collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/metadata.xml Sat Jan 22 16:49:17 2011 @@ -1,4 +1,4 @@ <?xml version="1.0"?> <metadata> - <version>1890</version> + <version>1891</version> </metadata> Added: collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/propertiestool.xml ============================================================================== --- (empty file) +++ collective.js.jqueryui/trunk/collective/js/jqueryui/profiles/default/propertiestool.xml Sat Jan 22 16:49:17 2011 @@ -0,0 +1,10 @@ +<?xml version="1.0"?> +<object name="portal_properties" meta_type="Plone Properties Tool"> + <object name="jqueryui_properties" meta_type="Plone Property Sheet"> + <property name="title">JQueryUI properties</property> + <property name="global_include" type="boolean">True</property> + <property name="views_and_templates" type="lines"> + <element value="@@example.jqueryui"/> + </property> + </object> +</object> Modified: collective.js.jqueryui/trunk/collective/js/jqueryui/upgrades.py ============================================================================== --- collective.js.jqueryui/trunk/collective/js/jqueryui/upgrades.py (original) +++ collective.js.jqueryui/trunk/collective/js/jqueryui/upgrades.py Sat Jan 22 16:49:17 2011 @@ -44,3 +44,15 @@ jsregistry.cookResources() cssregistry.cookResources() + +def upgrade_1890_1891(context): + setup = getToolByName(context, 'portal_setup') + setup.runImportStepFromProfile('profile-collective.js.jqueryui:default', + 'jsregistry', run_dependencies=False, + purge_old=False) + setup.runImportStepFromProfile('profile-collective.js.jqueryui:default', + 'cssregistry', run_dependencies=False, + purge_old=False) + setup.runImportStepFromProfile('profile-collective.js.jqueryui:default', + 'propertiestool', run_dependencies=False, + purge_old=False) Modified: collective.js.jqueryui/trunk/docs/HISTORY.txt ============================================================================== --- collective.js.jqueryui/trunk/docs/HISTORY.txt (original) +++ collective.js.jqueryui/trunk/docs/HISTORY.txt Sat Jan 22 16:49:17 2011 @@ -4,8 +4,9 @@ 1.8.9.2 (unreleased) -------------------- -- Nothing changed yet. - +- Add include condition to JQueryUI resources. Can be configured throw + portal_properties. + [toutpt] 1.8.9.1 (2011-01-21) -------------------- |