Metadata-Version: 1.0
Name: collective.uploadify
Version: 1.0rc1
Summary: Multi File Upload for Plone
Home-page: http://svn.plone.org/svn/collective/collective.uploadify
Author: Ramon Bartl
Author-email: ramon.bartl@inquant.de
License: GPL
Description: Introduction
        ============
        
        **Makes Plone File Uploads easy**
        
        Multifileupload for Plone using uploadify_
        
        .. _uploadify: http://www.uploadify.com
        
        Usage
        *****
        
        After insall, go to http://your-plone-site/@@upload
        
        NOTE
        ****
        
        collective.uploadify contains **no** GenericSetup Profile, thus, it won't
        appear in the quickinstaller tool.
        
        If you want to smoothly integrate the upload funtionality to your site,
        consider to add the following lines to your policy product in the
        profiles/default/actions.xml::
        
        <?xml version="1.0"?>
        <object name="portal_actions" meta_type="Plone Actions Tool"
        xmlns:i18n="http://xml.zope.org/namespaces/i18n">
        
        <!-- *** OBJECT *** -->
        <object name="object" meta_type="CMF Action Category">
        <property name="title"></property>
        
        <!-- MULTI UPLOAD -->
        <object name="upload" meta_type="CMF Action" i18n:domain="wcms.skin.backend">
        <property name="title" i18n:translate="">Upload</property>
        <property name="description" i18n:translate="">Batch upload files.</property>
        <property name="url_expr">string:${object_url}/@@upload</property>
        <property name="icon_expr"></property>
        <property name="available_expr">
        python:portal.portal_workflow.getInfoFor(context, "review_state", default="") == "published" and plone_context_state.is_folderish()
        </property>
        <property name="permissions">
        <element value="Modify portal content"/>
        </property>
        <property name="visible">True</property>
        </object>
        </object>
        </object>
        
        or simply go to the Zope Management Interface -> portal_actions -> object and
        add a new CMF Action Category from the dropdown and configure it with the
        following lines:
        
        - URL (Expression):
        string:${object_url}/@@upload
        
        - Condition (Expression):
        python:portal.portal_workflow.getInfoFor(context, "review_state", default="") == "published" and plone_context_state.is_folderish()
        
        
        Configuration
        *************
        
        The following settings can be done in the site_properties.
        (please use string properties):
        
        - ul_auto_upload -- true/false (default: false)
        
        *Set to true if you would like the files to be uploaded when they are
        selected.*
        
        - ul_allow_multi -- true/false (default: true)
        
        *Set to true if you want to allow multiple file uploads.*
        
        - ul_sim_upload_limit -- number 1-n (default: 4)
        
        *A limit to the number of simultaneous uploads you would like to allow.*
        
        - ul_queue_size_limit -- number 1-n (default: 999)
        
        *A limit to the number of files you can select to upload in one go.*
        
        - ul_size_limit -- size in bytes (default: empty)
        
        *A number representing the limit in bytes for each upload.*
        
        - ul_file_description -- text (default: empty)
        
        *The text that will appear in the file type drop down at the bottom of the
        browse dialog box.*
        
        - ul_file_extensions -- list of extensions (default: \*.\*;)
        
        *A list of file extensions you would like to allow for upload.  Format like
        \*.ext1;\*.ext2;\*.ext3. FileDesc is required when using this option.*
        
        - ul_button_text -- text (default: BROWSE)
        
        *The text you would like to appear on the default button.*
        
        - ul_button_image -- path to image (default: empty)
        
        *The path to the image you will be using for the browse button.
        NOTE: If you are using a **different sized button image** you have to set
        ul_height and ul_width otherwise your ul_button_image will be stretched to
        the defaults (110x30)*
        
        - ul_hide_button -- true/false (default: false)
        
        *Set to true if you want to hide the button image.*
        
        - ul_script_access -- always/sameDomain (default: sameDomain)
        
        *The access mode for scripts in the flash file.  If you are testing locally, set to `always`.*
        
        - ul_width -- number (default: 110)
        
        *The ul_width value which should be set when using a different sized
        ul_button_image*
        
        - ul_height -- number (default: 30)
        
        *The ul_height value which should be set when using a different sized
        ul_button_image*
        
        
        Customization for specific BrowserLayer
        ***************************************
        
        If you have your own skin installed which is based on it's own BrowserLayer
        (by default IThemeSpecific) and want to customize the look and feel of
        collective.uploadify's you could override the upload view and/or the upload
        initialize callback view
        
        - Customize view template::
        
        <configure
        xmlns="http://namespaces.zope.org/zope"
        xmlns:browser="http://namespaces.zope.org/browser">
        
        ...
        
        <!-- Customize collective.uploadify upload template -->
        <browser:page
        for="collective.uploadify.browser.interfaces.IUploadingCapable"
        name="upload"
        template="templates/upload.pt"
        permission="cmf.ModifyPortalContent"
        layer=".interfaces.IThemeSpecific"
        />
        
        </configure>
        
        - Customize initialize template::
        
        from zope.i18n import translate
        from zope.component import getMultiAdapter
        from collective.uploadify.browser.upload import UploadInitalize
        from my.product import MyMessageFactory as _
        
        
        class MyCustomUploadInitalize(UploadInitalize):
        """ Initialize uploadify js
        """
        
        def upload_settings(self):
        
        portal_state = getMultiAdapter(
        (self.context, self.request), name="plone_portal_state")
        
        settings = super(MyCustomUploadInitalize, self).upload_settings()
        settings.update(dict(
        ul_height = 26,
        ul_width = 105,
        ul_button_text = translate(_('Choose images'), target_language= \
        self.request.get('LANGUAGE', 'de')),
        ul_button_image = portal_state.navigation_root_url() + \
        '/button_upload.png',
        ))
        
        return settings
        
        Don't forget to register the new upload initialize view for your
        themespecific browserlayer by using::
        
        <configure
        xmlns="http://namespaces.zope.org/zope"
        xmlns:browser="http://namespaces.zope.org/browser">
        
        ...
        
        <browser:page
        for="*"
        name="upload_initialize"
        class=".uploadify.MyCustomUploadInitalize"
        permission="cmf.ModifyPortalContent"
        layer=".interfaces.IThemeSpecific"
        />
        
        </configure>
        
        collective.uploadify Installation
        *********************************
        
        To install collective.uploadify into the global Python environment (or a workingenv),
        using a traditional Zope 2 instance, you can do this:
        
        * When you're reading this you have probably already run
        ``easy_install collective.uploadify``. Find out how to install setuptools
        (and EasyInstall) here:
        http://peak.telecommunity.com/DevCenter/EasyInstall
        
        * If you are using Zope 2.9 (not 2.10), get `pythonproducts`_ and install it
        via::
        
        python setup.py install --home /path/to/instance
        
        into your Zope instance.
        
        * Create a file called ``collective.uploadify-configure.zcml`` in the
        ``/path/to/instance/etc/package-includes`` directory.  The file
        should only contain this::
        
        <include package="collective.uploadify" />
        
        .. _pythonproducts: http://plone.org/products/pythonproducts
        
        
        Alternatively, if you are using zc.buildout and the plone.recipe.zope2instance
        recipe to manage your project, you can do this:
        
        * Add ``collective.uploadify`` to the list of eggs and zcml to install, e.g.::
        
        [buildout]
        ...
        eggs =
        ...
        collective.uploadify
        
        zcml =
        ...
        collective.uploadify
        
        * Re-run buildout, e.g. with:
        
        $ ./bin/buildout
        
        Changelog
        *********
        
        1.0rc1 - 2010-04-25
        -------------------
        
        * renamed resource swfobject.js to collective.swfobject.js.
        This fixes the name clash with quintagroup.portlet.cumulus
        [ramonski]
        
        * Added some basic tests to the package
        [ramonski]
        
        * Added queue size to the settings in UploadInitialize flash response to
        give users the possibility to customize their upload queue size.
        [zupo]
        
        * Documentation updates. Added new section about customize uploadify's upload
        view and upload initialize view templates.
        [saily]
        
        * Added height and width to the settings in UploadInitialize flash response to
        give users the possibility to customize their uploadbuttons.
        [saily]
        
        * #9 fire ObjectModifiedEvent after upload of each item.
        (fixes http://plone.org/products/collective.uploadify/issues/9)
        [saily]
        
        0.10 - 2010-03-16
        -----------------
        
        * #5 play well with plone4's sunburst theme
        (fixes http://plone.org/products/collective.uploadify/issues/5)
        [fRiSi]
        
        * #7 reindex objects after upload so uploaded image files get
        recognized as images (fixes http://plone.org/products/collective.uploadify/issues/7)
        [fRiSi]
        
        0.9 - 2009-10-29
        ----------------
        
        * updated to Uploadify v2.1.0
        [ramonski]
        * removed cgi parser for QUERY_STRING.
        Now we receive the data via POST
        [ramonski]
        * updated js, css and upload.pt
        [ramonski]
        
        0.8 - 2009-10-27
        ----------------
        
        * added cgi parser for QUERY_STRING
        [seletz, ramonski]
        * added custom string encoder/decoder
        [seletz, ramonski]
        * fixed name chooser for german umlauts
        [ramonski]
        
        0.7 - 2009-07-23
        ----------------
        
        * re-fixed name chooser ...gnaarf
        [ramonski]
        * removed silly logging
        [ramonski]
        
        0.6 - 2009-07-23
        ----------------
        
        * changed the paths to the resources in javascript from absolute to relative.
        This fixes some strange behaviour resulting in Uploadify - IOErrors
        [ramonski]
        * fixed #2 (AttributeError: aq_parent) -- when doing uploads in the portal root
        [ramonski]
        * The upload folder can now be in private state as well.
        [ramonski]
        
        0.5 - 2009-06-25
        ----------------
        
        * use now the jquery.js shipped with Plone.
        This satisfies the comment of Maurits van Rees in
        http://old.plone.org/products/ploneflashupload/issues/1
        [ramonski]
        * fixed Bug with M$ IE Browsers described in
        http://www.uploadify.com/forum/viewtopic.php?f=4&t=266
        [ramonski]
        * uses 'jq' variable instead of '$' in templates and javascript
        [ramonski]
        
        0.4 - 2009-06-23
        ----------------
        
        * added cancel button
        [ramonski]
        
        * uploadify settings can be set in site_properties
        [ramonski]
        
        * added a name chooser to avoid id clashes when uploading files
        [ramonski]
        
        0.3 - 2009-06-22
        ----------------
        
        * fixed bug for M$ IE Browsers that the 'Browse' button not appear
        [ramonski]
        
        * changed permission for upload view to cmf.ModifyPortalContent
        [ramonski]
        
        * added onAllComplete handler which reloads the location and displays the
        uploaded files immediatly in the folder_listing macro
        [ramonski]
        
        * registered a browser view for the uploadify javascript initialization
        [ramonski]
        
        * registered a browser view for the uploadify upload action
        [ramonski]
        
        * removed unused code
        [ramonski]
        
        0.2.2 - 2009-06-04
        ------------------
        
        * added missing *.txt extension to MANIFEST.in **gnarf**, I hate setuptools!
        [ramonski]
        
        0.2.1 - 2009-06-04
        ------------------
        
        * added missing MANIFEST.in file
        [ramonski]
        
        0.2 - 2009-06-04
        ----------------
        
        * removed gs profile
        [ramonski]
        
        * added css styles for buttons
        [ramonski]
        
        * fixed bug with upper case file extensions
        [ramonski]
        
        0.1 - 2009-04-30
        ----------------
        
        * Initial release
        [ramonski]
        
        Contributors
        ************
        
        Ramon Bartl, Author, InQuant GmbH
        
        Stefan Eletzhofer, InQuant GmbH
        
        Harald Friessnegger, Webmeisterei GmbH
        
        Daniel Widerin, Kombinat Media Gestalter GmbH
        
        Nejc Zupan, NiteoWeb Ltd.
        
Platform: UNKNOWN
Classifier: Framework :: Plone
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries :: Python Modules
