#The-M-Project - Mobile HTML5 Application Framework
The-M-Project is an HTML5 Javascript framework for writing cross-platform mobile apps
The-M-Project includes code from a number of different open source projects including:
- jQuery
- jQuery Mobile
- underscore
- mobiscroll
- [Modernizr] (http://www.modernizr.com/)
- [iScroll 4] (http://cubiq.org/iscroll-4)
The-M-Project contains concepts of different open source projects including:
Thanks for sharing!
- Add class tmp-image-hidden in tmp.css
- Bugfix in show/hide image in ImageView
- Bugfix in M.List cloneObject
- Add contentBindingReverse to M.SelectionList
- Add error handling to M.View.getChildViewsAsArray
- setActiveButton of the M.ButtonGroupView accepts the name of the button
- Implemented theme in M.TextFieldView
- Add appdidload event
- Add cssClass property to M.GridView
- Update jQuery to 1.9.1
- Update jQuery mobile to 1.3.0
- Bugfix setActiveItem-method in CarouselView (Thanks to Markus)
- Allow whitespace in property name of valuePattern
- Added nearestNumber function to M.Math
- Bugfix setActiveItem-method in CarouselView: Paginator didn't update
- Updated d8 to v0.4.0
- Updated underscore.js to v1.4.4
- Added MovableLabelView
- Add valueBinding to selectionListView
- Bugfix cssClass on a Button doesn't affect data-theme anymore
- Fixed input tap delay
- Fixed Android Chrome scrolling
- Added M.ToggleSwitchView
- Added isPersistent flag to Toolbar
- Fixed multiple selection dialog mode on for ipad
- Bugfix if a browser does not support localStorage
- Fixed problem with BB devices and keyUp event
- Fixed issues with list item and multiple buttons
- Fixed a bug with keyUp event an initial text
- Fixed a bug with image view and the load event
- Fixed a bug with M.WebView and Android+Cordova (render pseudo div and push iframe dynamically)
- Set the current list item value to the view value. This enables for example to get the value/contentBinding of a list item in a template view.
- Fixed an issue with the debugMode flag and M.Logger (thx to wherati)
- Added M.ImagePreloader component and linked it with espressos preloading part to auto-load all images on startup if enabled via config.json.
- Refactored internal id/model_id behaviour of list item ids passed when a list item is selected.
- Disabled the automatic positioning of buttons within a list item view applied by jQuery Mobile.
- Added updateListItemView to M.ListView.
- Minor performance improvement for M.LoaderView (cached selector).
- Fixed inconsistency bug with selection list in single_selection_dialog mode.
- Added iconSize property to M.MapMarkerView.
- Added auto-destroy on DOM remove especially for list items
- Fixed a bug with callbacks property in the date picker view
- Added M.CarouselView as ui widget for vertically or horizontally slidable content
- Added check for input attributes to mondernizr property of M.Environment
- Fixed content binding in list view to enable a path as possible property
- Fixed TabBar issue with currentPage property on tab bar item switch (thx to kevwilde)
- ListItemView now has array index set for modelId property if nothing else is set
- Added support for more structured and sorted items for a divided list view
- Added support for more than one valuePattern within a list item sub component (thx to kevwilde)
- Added setLabel function to M.TextFieldView
- Updated ListView to work properly with jQuery Mobiles changes (select/selectmenu)
- entryPage property whitespaces are now removed before retrieving the entryPage for more robustness
- Removed binding touchmove for dialogs to fix scrolling issues with lists that listen to tap events
- Adjusted selector for fixing only fixed toolbars
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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