Git Product home page Git Product logo

extensible's Introduction

Extensible

This project is no longer under active development. The code remains available for historical purposes only.


About

Extensible actually contains a bunch of different components, but the primary product currently is Calendar Pro, a drop-in calendar solution styled after (the old) Google Calendar. It supports multiple views, drag-and-drop editing, calendar color-coding, localizability and is built to be easily extendable.

Calendar Pro screenshot

Ext Version Support

Extensible only supports Ext JS versions 3.x and 4.x. Ext 5 and above are not supported.

Extensible works with both Ext 3 and Ext 4. Unfortunately since Ext 4 is not backwards-compatible it means that Extensible must be managed in two separate branches in order to maintain support for both versions of Ext. The default master branch is now only compatible with Ext 4, and all Extensible releases from 1.5 forward will be for Ext 4. The Extensible 1.x branch (less than 1.5) will remain as the Ext 3 compatible line of code.

Since Sencha Inc. officially no longer supports Ext version 3.x (they support 4.2 and above only as of early 2016) Extensible also no longer officially supports Ext 3, and so Extensible itself will only be supported for versions 1.5 and greater.

Configuration

As of Extensible 1.0.2 and 1.5.1 you can easily customize the framework paths for the examples (e.g., if you want to run a different version of Ext, or host it locally), or switch between running the pre-built versions of Extensible or using the Ext.Loader to dynamically load the individual Extensible classes (extremely useful if you have to step into Extensible code). For complete details on all options, see the source comments included in Extensible-config.js.

Building from Source

"Compiling" the Code

If you clone or fork the repository to use the most up-to-date code, you'll probably want to be able to rebuild the project yourself. Build scripts for both Mac/Unix (build.sh) and Windows (build.bat) are included in the /build folder, as well as a version of JSBuilder and a .jsb2 project file for Extensible. You must have a current version of Java installed for JSBuilder to work.

By default, each build script uses the script file's location to reference other files relatively, so they should work as expected without modification. When you execute a build script (e.g., sh build.sh on the Mac/Unix command line, or just build on the Windows command line) it will build everything (minus docs) into a /deploy folder and also copy the -all and -all-debug files into the main /lib folder so that the examples will always have the latest code as well.

Generating Docs

The jar file for the Ext-doc utility is also included. If you'd like to generate docs as part of your build, simply pass -d as a command line arg to the build script (e.g., sh build.sh -d or build -d) and the current documentation will also be created under /docs.

Deployment

For use in your own application, you'll simply include the built framework files, just like any other typical Ext application dependencies. This could be your own custom-built files, if you've made any changes to the Extensible source. For example:

<!-- Load the Ext and Extensible CSS -->
<link rel="stylesheet" type="text/css" href="path/to/extjs/resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="path/to/extensible/resources/css/extensible-all.css" />

<!-- Load the Ext and Extensible deployment files -->
<script type="text/javascript" src="path/to/extjs/ext-all[-debug].js"></script>
<script type="text/javascript" src="path/to/extensible-all[-debug].js"></script>

<!-- Include your app and any other app-specific files -->
<script type="text/javascript" src="MyApp.js"></script>

Upgrading from Extensible 1.x to 1.5+

Nothing about the Extensible API changed between 1.x and 1.5 except the naming/namespacing and organization of classes. No new functionality was introduced that was not directly relevant to supporting Ext 4.0. Because of this upgrading should not be difficult, but since almost every single class was renamed and/or reorganized (to be more consistent with Ext 4 and also to provide support for dynamic loading), you may find it initially tedious to get existing application code back up and running under Extensible 1.5+.

To ease this transition there is a compatibility file in the /lib folder called extensible-1.0-compat.js that provides all of the necessary class aliases to get Extensible 1.x code working under 1.5+. Simply include it right after your existing extensible-all[-debug].js reference. You should eventually update your own code with the new class names so that you can remove the compatibility file, but it will not hurt anything to run with it as needed.

License

Extensible is available for free under the terms of GPL v3.

extensible's People

Contributors

bmoeskau avatar dusek avatar gsidler avatar mattsmith321 avatar mikearmstrong1 avatar nebbian avatar nsams avatar nsolsen avatar oniram88 avatar reggino avatar satishkn avatar varunachar avatar yassinajdi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

extensible's Issues

Offset calculation in CalendarView.setViewBounds

Current implementation:

var start = startDate || this.startDate,
offset = start.getDay() - this.startDay;

This fails when startDay is monday(1) and current day is sunday(0). The weekview shows next week initially and also if today button is clicked.
Can be fixed with something like this:

offset = ((start.getDay() - this.startDay) % 7 + 7) % 7

ext calendar 1.5 not working

1.5 version is not working when i downloaded it. not even the basic examples are working. what might be the issue?

Undefined is not an object while evaluating 'Extensible.calendar.view.AbstractCalendar' and 'Extensible.calendar.data.EventMappings'

Hello,

with latest master (fa6728b), but not the very previous commit (c2e92b4), I get the following errors:

extensible-lang-cs.js:8: TypeError: 'undefined' is not an object (evaluating 'Extensible.calendar.view.AbstractCalendar')
calendar.js: TypeError: 'undefined' is not an object (evaluating 'Extensible.calendar.data.EventMappings')

I tested with Chrome 12 and Safari 5.1 on Mac OS X 10.6.8.

When using English, I get the same error at extensible-lang-en.js:17.

calendar.js is my own code, which does this:

Ext.require([
    'Ext.data.proxy.Ajax',
    'Extensible.calendar.data.EventStore',
    'Extensible.calendar.data.MemoryCalendarStore',
    'Extensible.calendar.CalendarPanel',
    'Extensible.calendar.data.EventMappings',
    'Extensible.calendar.data.CalendarMappings'
]);

Ext.onReady(function(){
    // comments

    var M = Extensible.calendar.data.EventMappings; // <<< HERE IT FAILS

    // setup the calendar widget and render it to a <div>
});

I include these files related to Extensible directly using the <script> tag in <head>, in this order:

ext-all-debug.js
extjs-paths.js (my file which sets up paths for Ext loader)
extensible-all-debug.js
ext-lang-cs.js
extensible-lang-cs.js
calendar.js (my file which sets up the calendar widget and renders it to a div)

Please let me know if you need more information.

Trying to load Ext4 only when needed.

Ladies & Gentlemen,

I´m trying to load Ext + the calendar JS only when needed as it´s only a small part of my app. Trying to acompish that has been tough so far, but I could get Ext to work fine when loaded later on. (http://stackoverflow.com/questions/7044576/loading-ext-js4-only-when-needed-problem-with-ext-onready)

Now I´m trying to get the Calendar work but I´m stuck.

This is the working example code (basically from the examples, I had to load it to my own domain as 1.5 examples where not up yet):
http://jsfiddle.net/thomasf1/qCLcS/8/

What I´m trying to do is this: (only partly working using a workaround gathered in the stackoverflow thread)
http://jsfiddle.net/thomasf1/qCLcS/10/

What I´ve tried also:

  • Using other loaders than jQuery
  • Preloading all other files with jQuery (e.g. Calendars.js)

It would be great if there would be a fix to make it work,
Thomas

Project abandoned?

Is this project abandoned? Too many pull request, and no release for Ext JS 5 or 6

Doubled todayText

In extensible-all-debug.js I have found todayText doubled in the same class (Ext.ensible.cal.CalendarPanel row 5665 and 5685).

List all events with recurrences?

Hi,

I'm currently looking into finding a good solution for my project which shows repeating events and has to handle recurrence.

Your library looks good so I might steal some bits and bobs but I was wondering how you would do something like:

  • Listing all events in a list view or calendar. So not just the initial event but all occurrences.
  • Find events for a specific date. I.e. you select a day in a calendar and you want to see all events that are happening that day.

I would appreciate your input :)

David

How to reload store at week view or day view (1.5.1)

sorry for my bad english

I use my own way to save event. After event saved I need to reload data. At month view page, I can call getActiveView and use 'refresh' method to reload store with startDate and endDate as parameters.

But, at week view page or day view page, there is no effect. It seems that both of those page call 'refresh' method from 'Extensible.calendar.view.Day' which won't call 'reloadStore' method.

Truly, I can use store.load() instead and use getViewBounds to fetch startDate and endDate. But, I don't think it's the best way.

Missing Plugins?

In your test-application code I can see commented the following lines:
plugins: [{
ptype: 'ext.ensible.cal.contextmenu'
}],
If I uncomment it I will get an error.
Is it intended in the future to support plugins, or this is already obsolete?

Built files are missing

Your examples are refferencing the built files but these are missing from git/archive
i.e. <script type="text/javascript" src="../../extensible-all-debug.js"></script>
And since your build doesn't yet work on windows, it's hard to test/see them.
Could you please add them?

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.