Giter Site home page Giter Site logo

keepalo / jquery.recurrenceinput.js Goto Github PK

View Code? Open in Web Editor NEW

This project forked from collective/jquery.recurrenceinput.js

0.0 2.0 0.0 5.76 MB

jQuery recurrence widget based on the icalendar RFC5545 standard

License: MIT License

JavaScript 95.91% CSS 2.69% Python 1.40%

jquery.recurrenceinput.js's Introduction

jQuery recurrenceinput widget

jQuery plugin widget which support the definition of complex recurrence rulesets based on RFC5545, the iCalendar standard.

The recurrence rule string, generated by this package, should be directly usable in ics calendar files. It was developed for the Plone, but is completely independent of the web-framework. This widget is production ready and used in several sites.

image

Features

  • The recurrence widget supports most of the options of the iCalendar RRULE as well as EXDATE and RDATE.
  • It supports internationalization.
  • It supports predetermined recurrence rules, so called "templates".

Non-Features

This widget does not support all features of RRULE's. For example:

  • It does not support recurrence on smaller than daily basis.
  • In RRULE's end-dates can end either be in local time or in UTC. This widget only supports UTC, which means the start and end dates of the event as a whole, when exported may not be in local time. They must either specify a timezone or be in UTC. If the RRULE fed to the widget is in local time, this will be made into UTC with no timezone translation.
  • Any parameters will be ignored and stripped on saving the rule.

Requirements

Requires jQuery and jQuery Tools datetime widget and overlay support. It is currently being tested with jQuery 1.4, because that's what plone uses, and jQuery 1.7, because that is the last version supported by jQuery Tools.

jQuery 1.5 may work but is untested. Bugs in jQuery 1.6.4 means it does not work. jQuery Tools doesn't support jQuery 1.8 yet.

It's tested on Chromium 20 (Linux), Firefox 16 (Linux), IE 8 and IE 9 (Windows).

To Do

High priority:

  • 100% code coverage from tests (currently 95%).

Medium priority:

  • Make it possible to change the order of the fields as a part of the i18n. (jQuery templates)?
  • The human readable output should probably be done directly from the RRULE and not by using the form i18n, to improve the grammar and rule support.

Low priority:

  • Support more obscure RFC5545 options, either in the form or by providing warnings that the option is unsupported.

Developer information

To test, demo or develop jquery.recurrenceinput locally you need to run a local server, provided in the test_server.py script.

This server requires the dateutil module, so you must install it first. Here are some examples of how to do this, depending on your platform:

Debian/Ubuntu:

$ sudo apt-get install python-dateutil

A non-system Python 2 with setuptools or distribute installed:

$ <pathtopython>/easy_install python-dateutil

Then start the tests server like so:

$ python ./test_server.py

Open the demo pages http://localhost:8000/demo/input.html and http://localhost:8000/demo/localized.html

And Open the tests: http://localhost:8000/tests/tests.html

The demo/input.html document contains basic usecases and can be used when developing on this widget.

You also need to run the tests. These are located in tests/tests.js, and use the QUnit test framework. You run them by opening tests/test.html in the browser. The same issue with allowing Ajax from the local hard drive is in effect for the tests as well.

In the tests directory there is also a copy of jslint.js, for easy access. To run these you need to install a JavaScript engine, such as Rhino or SpiderMonkey. You then run it with:

$ js tests/jslint.js <file>

The following files should be jslinted:

src/jquery.recurrenceinput.js
src/tests.js

To keep the Coverage tests updated you need to install jscoverage ( http://siliconforks.com/jscoverage/ ). You then keep the coverage code updated by running:

jscoverage src/ coverage/

To run the coverage tests you go to http://localhost:8000/coverage/jscoverage.html?/tests/coveragetest.html

Contributors

This project was originally started by Rok Garbas.

Authors:
  • Lennart Regebro
  • Rok Garbas
  • Vilmos Somogyi
  • Johannes Raggam
  • Mike Rhodes
  • Kai Lautaportti

Thanks to Hexagon IT, http://www.hexagonit.fi/, who funded the main body of work, done by Lennart Regebro.

jquery.recurrenceinput.js's People

Contributors

regebro avatar garbas avatar mikerhodes avatar thet avatar vsomogyi avatar deiferni avatar dokai avatar aridor2006 avatar dgreif avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.