'The-M-Project' is a Mobile HTML5 Application Framework.
Pull request Compare This branch is 1226 commits behind mwaylabs:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
doc
modules
test/qunit
.gitignore
GPL-LICENSE
LICENSE
MIT-LICENSE
README
changelog.txt

README

The-M-Project - Mobile HTML5 Application Framework
======================================

The-M-Project is an HTML5 Javascript framework for writing cross-platform mobile apps

## Acknowledgements

The-M-Project includes code from a number of different open source projects
including:

* [jQuery](http://www.jquery.com/)
* [jQuery Mobile](http://www.http://jquerymobile.com/)
* [underscore](http://documentcloud.github.com/underscore/)
* [mobiscroll](http://code.google.com/p/mobiscroll/)
* [Modernizr] (http://www.modernizr.com/)


The-M-Project contains concepts of different open source projects
including:

* [SproutCore](http://www.sproutcore.com/)
* [persistencejs](https://github.com/zefhemel/persistencejs/)


Thanks for sharing!



## CHANGELOG

** Version 1.1 - Date 20.04.2012 **

  * Fixed Issue #30: Changed button() to buttonMarkup() to render dynamically added buttons correctly
  * Fixed isAsync and isJSON flags in M.Request
  * Fixed tap/click issue with google maps on iOS
  * Fixed a bug with event dispatching and hyperlinks for buttons/labels
  * Fixed themeUpdate() of M.SelectionListView and with single selection dialog mode (no more js errors with empty content binding)
  * Fixed issue with having multiple toolbars when "outsourcing" them into a seperate file
  * Fixed issue with hard coded view id in table view (thx to jianliao)
  * Added parentView property to any view that is rendered within renderChildViews
  * Updated D8 library to 0.1.5
  * Clear the validation status before validate it again (thx to jianliao)
  * Added events property to M.ListView that gets applied to all items if the template does not specify events too
  * Added swipe button feature to M.ListView / M.ListItemView
  * Added hasAsteriskOnLabel property to M.TextFieldView, M.SliderView and M.SelectionListView (thx to jianliao)
  * Added a complex split view component to the framework (M.SplitView, M.SplitItemView, M.PopoverView, M.SplitToolbarView)
  * Fixed an issue with minifed modernizr and Espresso's DCE
  * Updated D8 to v0.1.6 (thx to josher19)
  * Fixed issue with google call to non existing variable in M.MapView
  * Updated jQuery to 1.7.1
  * Updated jQuery Mobile to 1.1.0
  * Updated mobiscroll to 1.6
  * Fixed an issue with possibly undefined variable in M.FormView
  * Updated D8 library to 0.2.0
  * Updated Underscore to v1.3.2
  * Added parameterized M.I18N
  * Fixed a bug with regex check for valuePattern in M.ListView
  * Improved behaviour and stability of dialogs
  * Adjusted look and feel of date picker to fit into jqm design
  * Adjusted a few ui components to work with jqm 1.1
  * Implemented real fixed toolbars/tab bars of jqm 1.1
  * Adjusted M.SliderView to make use of jqm's 'highlight' option
  * Fixed a bug with M.ListView (rendering of sub views is now possible)
  * Fixed a bug with M.ScrollView
  * Upgraded split view to work with JQM 1.1

** Version 1.0 - Date 25.01.2012 **

  * Do not trigger success callback when isUpdate within M.MapView's init()
  * Added icon property to M.MapMarkerView
  * Fixed initialText property of M.TextFieldView with input-type password (thx to amenon)
  * Improved debugging of M.Toolbar, regarding the anchorLocation property of the child views (thx to greylurk)
  * Fixed a bug in local storage provider (thx to amenon)
  * Updated Underscore to v1.3.1
  * Updated D8 library to 0.1.3
  * Fixed a bug with native date picker and M.TextFieldView (update value on lostFocus event)
  * Content binding now can handle 0 as number since we now check for undefined & null
  * M.LocationManager's getAddressByLocation() now can return the address as an components object instead of fixed string
  * Fixed the "overlapping" problem of M.ListView if used in between other views
  * Fixed the problem of too long values in the center position of a toolbar

** Version 1.0 RC1 - Date 17.01.2012 **

  * Fixed a bug with sendNoCacheHeader property of M.Request
  * I18N not sets language to default language if the desired one is not available
  * Fixed a bug in M.Request concerning the internal callbacks
  * Added M.DataConsumer as a special data provider that only works as a source and in combination with the model's find()
  * Fixed a bug with textfields (date input), computed value and the datepicker
  * Updated Underscore to v1.3
  * Updated mobiscroll to 1.5.3
  * Fixed a bug with M.ScrollView and the clear button
  * Added disable()/enable() and clearValue() to M.SearchBarView
  * Added cssClass property to M.ListView
  * Added special behaviour for M.ButtonView inside of an M.ToggleView
  * Model: changed m_id from number to unique string (4 digits each can be one of 32 chars)
  * Model: deleted bulkImport method
  * Renamed getRecordForId() to getRecordById() (in M.RecordManager), the latter one is deprecated now
  * Deleted M.ModelRegistry
  * Deleted M.DataProviderCouchDB
  * Deleted M.DataProviderWebSQL
  * Method find() in DataProviderLocalStorage now takes an object for query
  * Added "include" operator (for strings) for LS find query
  * Changed version to 1.0RC1


** Version 0.8 - Date 05.12.2011 **

  * Fixed a typo bug in M.Request
  * Added M.CanvasView
  * Added numberOfChars property to M.TextField (equivalent to HTML's maxlength property)
  * Fixed a UTF8 bug in M.ListView
  * Added M.TextFieldView to supported views within a list item view.
  * Removed deprecated useTransitions property of M.Application (use getConfig() instead)
  * Fixed a bug with the switchToPage() (make use of the fourth parameter: updateHistory)
  * Added all the date-types as possible values for inputType for M.TextFieldView
  * Added M.SliderView (based on input type range and jqm)
  * Reposition dialogs on orientation change
  * Added queue to dialogs to only show one at a time
  * Added the M.MULTIPLE_SELECTION_DIALOG mode to M.SelectionListView
  * Added 4-column layout to M.GridView
  * Updated Underscore to v1.2.2
  * Updated mobiscroll to v1.5.2
  * Added a custom Modernizr configuration to M.Environment for detecting HTML5 input types
  * Added M.DatePickerView as fallback to date input types for M.TextFieldView
  * Added callbacks to initMap()
  * Added disable() / enable() to M.SelectionListView
  * Added M.TableView (first, simple version)
  * Refactored M.Request to use the callbacks property
  * Added sendNoCacheHeader and sendTimestamp properties to M.Request
  * Changed version to 0.8

** Version 0.7 - Date 18.10.2011 **

  * Added D8 as the next generation date object in JavaScript (M.Date remains, but will no longer be maintained)
  * Fixed a bug in M.LocationManager
  * Added changeTitle() to M.LoaderView
  * Fixed a bug in style() with the disabled-property
  * Fixed a bug in styleUpdate(), since disabled-property lead to problems with autogrow mechanism
  * Fixed a bug in M.EventDispatcher (no unbind of jqm-based events)
  * ContentDidChange Event for values which are an empty string
  * Refactored M.SelectionListView to use this.value in renderUpdate() since it was automatically set by contentDidChange() of M.View
  * Added M.DashboardView / M.DashboardItemView
  * Added disable() / enable() to M.ButtonView (also usable within a button group)
  * Extended dashboard's editable support for dektop browser
  * Refactored extend() in M.Object to correctly differenciate between object and prototype properties.
  * Implemented the all new M.DatepickerView (based on mobiscroll)
  * Fixed a bug in the form view's getFormValues()
  * Added check and error message to M.ListView if there is a invalid template
  * Updated Underscore to v1.1.7
  * Updated JQM to 1.0RC1
  * Added 'enableTouchOverflow' and 'useTransitions' properties to the config.json's application section
  * Updated jQuery to 1.6.4
  * Added cssClass property support to M.DashboardView
  * Fixed a bug in email validator
  * Fixed some stuff in M.SelectionListView and extended support for boolean/numerical values when using content binding
  * Finalized v0.7
  * Refactored getLocation() to work with callbacks in all cases instead of returning boolean value

** Version 0.6 - Date 21.07.2011 **

  * Refactored content binding (3): set() now can set single values of a chain like 'person.address.street'
  * Added 'orientationchange' event to M.PageView
  * Fixed M.LoaderView
  * Removed useless properties of M.Application (viewManager, modelRegistry, ...)
  * Refactored M.MapView: Load google maps api only if connection available (this fixes a bug with the cache manifest)
  * Added unregisterEvents() to M.EventDispatcher
  * Renamed remove() to unregister() in M.ViewManager
  * Refactored destroy() in M.Application: Additionally unregister a view from both the event dispatcher and the view manager
  * Added setActiveButtonAtIndex() to M.ButtonGroupView
  * Removed applyTheme property
  * Fixed a bug in renderUpdate() of M.ButtonView
  * Added resetSelection() to M.SelectionListView
  * Updated jQuery Mobile to 1.0b1 (and adjusted some parts of TMP to work with this new version properly)
  * Updated underscore.js to 1.1.6
  * Removed the VERSION file, since we maintain the version in m.js -> M.version
  * Refactored alert and confirm dialog to have position dynamically calculated => always in center of the screen, even if page is scrolled. Semi-transparent background now has full page size.
  * Added getTotalSize, getTotalHeight and getTotalWidth to M.Environment to get total size of document
  * Auto-center M.Loader view when show() is called and the loader was hidden before
  * Fixed a bug in M.FormView's showErrors()
  * Added Dynamic Value Computing to M.TextFieldView
  * Added config property and getConfig() to M.Application to access properties of config.json within an application
  * Added isSelectable property to M.ListItemView
  * Added setView() to M.ToggleView
  * Use debugMode property of config.json to only log if we are not in production mode

** Version 0.5 - Date 03.06.2011 **

  * Fixed a bug in M.I18N
  * Added setValue() to M.LabelView
  * Added autogrow-mechanism to M.TextFieldView in combination with content binding
  * Refactored event handling (all over and over all)
  * Refactored childViews property (it's way more robust now)
  * Updated jQuery to 1.6.1
  * Updated jQuery Mobile to 1.0b1
  * Refactored content binding (1): It now uses target/property (same as events)
  * Refactored content binding (2): Added recursion, so now something like 'person.address.street' is possible
  * Added method to remove a view's child views (e.g. used in toggle view)
  * Refactored dialogs: no more rendered as page but as an overlay animated with CSS3
  * Refactored toggle view: do show/hide instead of add/remove

** Version 0.4 - Date 19.04.2011 **

  * Updated jQuery to 1.5.2
  * Updated jQuery Mobile to 1.0a4.1
  * Updated M.DatePickerView to work with latest version of JQM
  * Updated M.SelectionListView to work with latest version of JQM
  * Fixed a bug in M.ToggleView

** Version 0.3 - Date 22.02.2011 **

  * Added M.DatePickerView.
  * Added 'entryPage' property to M.Application and refactored the process of launching this first page.
  * Added bootstrapping directory (needed for some startup scripts).
  * Added jquery_mobile_plugins directory for jQM based plugins.
  * Fixed a bug with M.ListView: ID 0 of a model record was ignored due to an invalid constraint.
  * Added CouchDB Data Provider
  * Bugfixes in M.Model