{ "info": { "author": "Tobias Herp", "author_email": "tobias.herp@visaplan.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Plone", "Framework :: Plone :: 4.3", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Natural Language :: German", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7" ], "description": ".. This README is meant for consumption by humans and pypi. Pypi can render rst files so please do not use Sphinx features.\n If you want to learn more about writing documentation, please check out: http://docs.plone.org/about/documentation_styleguide.html\n This text does not appear on pypi or github. It is a comment.\n\n=============================\nvisaplan.plone.ajaxnavigation\n=============================\n\nAdd AJAX navigation to a Plone site.\n\nThis is probably not the most advanced or state-of-the-art way to add AJAX\nnavigation; for Plone 5, I was told about `plone.patternslib`_, based on\n`patternslib`_.\n\nFor `Volto`_ sites, the whole jQuery-based handling might be obsolete because\nof the use of `React.js`_.\n\nAt the time of this writing, those were no options for me since I was still on\nPlone 4.3. Thus, I needed a working solution.\nDepending on the quality, I'll switch to some Plone-5-ish solution when doing\nthe leap, or I'll stick with my own.\n\nThe general idea is:\n\n- Catch the onclick event for every ``a`` element on the page.\n- For some links, a special check will tell to proceed with the standard\n behaviour, i.e. load the target the standard way; this includes:\n\n - Link targets outside of the current site (another hostname is given)\n - Management pages (e.g. starting with ``manage_``)\n - Other pages which don't load the navigation links etc. anyway,\n or wouldn't work when loaded via AJAX\n - Anchor elements with certain attributes\n - Views for contexts which don't have a suitable embedable view yet.\n\n For such link targets, this function will simply return *true*,\n and the page is loaded in the standard way.\n\n- If that check function concludes, \"let's load the target via AJAX\",\n it will look for certain elements on the page and try to update them:\n\n - ``content``\n\n and, optionally:\n\n - breadcrumbs\n - other page elements\n\n It will also set the page url and title accordingly\n (from the ``@url`` and ``@title`` keys of the JSON reply, respectively),\n allowing for the browser history.\n\n- If the tried URLs fail to return a usable JSON answer,\n or if the target URL is inappropriate for other reasons\n (e.g. page-local, or leaving the current site),\n the target page is loaded the normal, non-AJAX way\n (i.e., loading the whole page).\n\n\nFeatures\n--------\n\n- Tries up to two URLs for each ``a`` element (only one, it the target URL ends\n with \"``/``\", or if the final path element can be considered a view method\n name rather than an object id)\n- Can be configured using the Plone registry.\n\n\nTo do\n-----\n\n- Provide ``@@embed`` views for all standard objects.\n- Provide ``@@please_login`` and ``@@insufficient_rights`` views.\n- Use a `web worker`_.\n- Find reliable CSS destination selectors for the ``content``.\n- Make this package RequireJS_-aware.\n\n\nExamples\n--------\n\nThis add-on is currently under development and not yet used on public internet\nsites.\n\n\nDocumentation\n-------------\n\nFull documentation for end users can be found in the \"docs\" folder.\n\n\nInstallation\n------------\n\nInstall visaplan.plone.ajaxnavigation_ by adding it to your buildout::\n\n [buildout]\n\n ...\n\n eggs =\n visaplan.plone.ajaxnavigation\n\n\nand then running ``bin/buildout``.\n\nOr, more likely:\n\nAdd it to the dependencies of your package, e.g. in your ``setup.py`` file.\n\nYou'll need to provide ``@@embed`` views for your content types;\nideally, you can use your already-existing ``BrowserView`` classes.\n\n\nContribute\n----------\n\n- Issue Tracker: https://github.com/visaplan/plone.ajaxnavigation/issues\n- Source Code: https://github.com/visaplan/plone.ajaxnavigation\n\n\nSupport\n-------\n\nIf you are having issues, please let us know;\nplease use the `issue tracker`_ mentioned above.\n\n\nLicense\n-------\n\nThe project is licensed under the GPLv2 (or later).\n\n.. _`Volto`: https://volto.kitconcept.com/\n.. _`React.js`: https://reactjs.org/\n.. _`patternslib`: https://patternslib.com/\n.. _`plone.patternslib`: https://pypi.org/project/plone.patternslib/\n.. _`issue tracker`: https://github.com/visaplan/plone.ajaxnavigation/issues\n.. _`web worker`: https://html.spec.whatwg.org/multipage/workers.html#workers\n.. _RequireJS: https://requirejs.org/\n.. _visaplan.plone.ajaxnavigation: https://pypi.org/project/visaplan.plone.ajaxnavigation\n\n.. vim: tw=79 cc=+1 sw=4 sts=4 si et\n\n\nContributors\n============\n\n- Tobias Herp, tobias.herp@visaplan.com\n\n\nChangelog\n=========\n\n\n1.0.dev1 (unreleased)\n---------------------\n\n- Initial release.\n [tobiasherp]", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "GPL version 2+", "maintainer": "", "maintainer_email": "", "name": "visaplan.plone.ajaxnavigation", "package_url": "https://pypi.org/project/visaplan.plone.ajaxnavigation/", "platform": "", "project_url": "https://pypi.org/project/visaplan.plone.ajaxnavigation/", "project_urls": { "Documentation": "https://pypi.org/project/visaplan.plone.ajaxnavigation", "Source": "https://github.com/visaplan/plone.ajaxnavigation", "Tracker": "https://github.com/visaplan/plone.ajaxnavigation/issues" }, "release_url": "https://pypi.org/project/visaplan.plone.ajaxnavigation/1.0.dev6/", "requires_dist": null, "requires_python": "", "summary": "Plone add-on to add AJAX navigation", "version": "1.0.dev6" }, "last_serial": 5714924, "releases": { "1.0.dev4": [ { "comment_text": "", "digests": { "md5": "659c6abc79df61f9fed6d51c59bd6845", "sha256": "1ec6adc774f41ecd5e97e552683d50adfddf805fd0f6567a8997a6e77660713a" }, "downloads": -1, "filename": "visaplan.plone.ajaxnavigation-1.0.dev4.tar.gz", "has_sig": false, "md5_digest": "659c6abc79df61f9fed6d51c59bd6845", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30707, "upload_time": "2019-07-11T16:38:10", "url": "https://files.pythonhosted.org/packages/8f/15/d1f79ff4f28be37df5da66925354226a9e75554e07db8c887b84f4e01905/visaplan.plone.ajaxnavigation-1.0.dev4.tar.gz" } ], "1.0.dev6": [ { "comment_text": "", "digests": { "md5": "e3e2289f3feb547dbd653e9b7015b665", "sha256": "31fb6d9742419632fb8ba99830c7979b594b792be34aa5a4bcc621f937cb09a8" }, "downloads": -1, "filename": "visaplan.plone.ajaxnavigation-1.0.dev6.tar.gz", "has_sig": false, "md5_digest": "e3e2289f3feb547dbd653e9b7015b665", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39602, "upload_time": "2019-08-22T12:33:35", "url": "https://files.pythonhosted.org/packages/a4/8f/9174d6dae519b425ebfe1d204f0d17ba0b4ef1797568336900ecf9ec57b6/visaplan.plone.ajaxnavigation-1.0.dev6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e3e2289f3feb547dbd653e9b7015b665", "sha256": "31fb6d9742419632fb8ba99830c7979b594b792be34aa5a4bcc621f937cb09a8" }, "downloads": -1, "filename": "visaplan.plone.ajaxnavigation-1.0.dev6.tar.gz", "has_sig": false, "md5_digest": "e3e2289f3feb547dbd653e9b7015b665", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39602, "upload_time": "2019-08-22T12:33:35", "url": "https://files.pythonhosted.org/packages/a4/8f/9174d6dae519b425ebfe1d204f0d17ba0b4ef1797568336900ecf9ec57b6/visaplan.plone.ajaxnavigation-1.0.dev6.tar.gz" } ] }