0.7.3: - Models being loaded by the FormView will now call beforeFormLoad methods if they exist on those models 0.8.1 - Adds many style fixes for GridView - Fixes style conflicts for Bootstrap grid-* css selectors - Adds getForm() and getModel() methods to Luca.Field classes that belong to a form 0.8.2 - Adds checkbox group field component ( thanks nick desteffen ) 0.8.3 - Stop mixing in underscore.string onto the global underscore object - the ctype property used to create objects from hashes, can now be named 'type' - Adds Luca.util.classify function for converting strings into class names 0.8.4 - Fixes bug in development console - Colorizes Development Console - Introduces Luca.template helper to find template by regex in Luca.templates or window.JST. Optionally compiling the template if you pass variables to it. - Introduces Luca.View.applyStyles which delegates to @$el.css 0.8.5 - Luca.define() can be used to extend components, and retain references to the inheritance chain. Components defined this way will have _className attributes as well as _superClass() references. This allows for introspection of components as well as advanced querying of the Luca Component Cache _ Added _.def as an alias to Luca.define - All Luca components have been migrated over to the new Luca.define() API 0.8.6 - Luca.ModalView has been refactored to use Twitter Bootstrap Modal - Luca.Application now has keyEvents API for handling keypress events and delegating them properly - Luca.containers.CardView has been refactored to be more inline with base container - Luca.View gets $append, $html, $container jQuery helpers. shortcut for @renderToEl().append, etc - Luca.View gets @bodyTagName, @bodyTemplate properties. - @bodyTemplate references a JST template which automatically gets added via $html if present, immediately when the view is rendered - @bodyTagName is where $append, $html will insert content, otherwise defaults to @$el - Luca.View has $bodyEl() method which points to $(@bodyTagName) or $(@el) ( default ) 0.8.7 - Luca.core.Container now uses bodyTemplate to render - Luca.Collection.cached property is now deprecated. use @cache_key instead - introducing Luca.Collection.cachedMethods property. any method on the collection which is listed here, will have its return value memoized upon first being called. Whenever the collection is reset or changed, this value will be cleared, and then the next call will be cached, and so on 0.8.8 - Added development mode helpers to Luca.View to aid in browser editing - Added configuration for @deferrable rendering system for Luca.View - Added isComponent and supportsBackboneEvents helpers - Added componentEvents configuration sugar to Luca.core.Container classes @componentEvents allows for a container to bind to events on its children - major work on component tester - the development console component now extends from Luca.core.Panel instead of the ModalView - Added _super() method which accepts a method name, context, and arguments array and is the equivalent to applying the component you extend from prototype method with @, arguments - Added component.once, as an alias for binding to an event and firing a callback one time - Added component.defer(operation).until(object,trigger) as wrapper around .once binding. operation can be a string, or a function, and the call to until accepts an object and the name of a trigger to listen for on that object. if you just pass a trigger, object is implicitly the component - Luca() is now a global helper for finding views, querying the cache, lazily creating objects, etc. smart enough to know what you want from it based on the input - window.Luca now mixes in Backbone.Events and Luca.Events. triggers events whenever components are registered or created 0.8.9 - Refactored Panel View to incorporate Load Mask and Top and Bottom Toolbar - Refactored GridView and FormView to inherit from Luca.components.Panel - Added @additionalClassNames property to Luca.View. - GridView and FormView can not have an automatic load mask effect based on Twitter's progress bar. Simply trigger enable:loadmask and disable:loadmask on any view where loadMask is set to true 0.9.0 - Introducing Luca.components.CollectionView 0.9.1 - Bugfix Release 0.9.2 - FormView has errorMessage, successMessage methods which use twitter bootstrap alerts as flash message - FormView toolbar accepts new options: true, both, bottom, or top - Luca.Collection has a property @remoteFiltering which makes applyFilter always use remote fetch - Bugfix in GridView collection change handler - Added Luca.isViewPrototype, Luca.isModelPrototype, Luca.isCollectionPrototype helpers - Added configuration option to control auto registration of components with the registry - Added Luca.parentClass and Luca.inheritanceChain methods for inspecting a component or prototype - Changed single instance tracking mechanism on CollectionManager. Will throw an error if more than one is created without specifying a name. - Added Luca.getCollectionManager() helper as an Alias for Luca.CollectionManager.get() - Luca.getApplication() and Luca.getCollectionManager() accept a name argument - Classes like Luca.Application and Luca.CollectionManager which normally are singletons can have more than one instance if a unique name is given 0.9.3 - CardViews and Controllers set data attributes on their elements for the active card / page - Added convenience methods to container 'pluck', 'invoke' - Added methods to Controller for ease of autogenerating routes - Added beforeInitialize hook on Luca.View - Luca.View can now automatically configure state machine models by passing `stateful:true` in your view definition. - Containers will respond to getter attributes set on their components, by defining a getter on the container 0.9.31 - lazyComponent type property now goes through a map to allow for aliasing - add ability to customize container / component render method by overriding Luca.core.Container.componentRenderer - rename appendContainers property to generateComponentElements - adding a Luca.PageView component as an alias for CardView - adding a Luca.PageController component as an alias for Controller 0.9.33 - added gridSpan property to Luca.View. This will automatically add the span class for you to snap your view to the grid. Accepts a number 0-12. - fixed a bug in CardView.componentElements method with bodyClassName being present - Added LabelView component. A form field which just displays a value. 0.9.35 - fixes bug in FormView.getFields() when passing in a filter. getField by name falls back to input name check if name check fails. - fixes checkbox method for checking if underlying component is checked or not - adds valueType option to core field object. allows for typecasting on getValue function - change behavior on enableKeyEvents on text field - added Luca.util.launchers for Development Tools usage - added gridRow and gridRowFluid option to luca views to add row classes - added gridOffset to add grid offset bootstrap classes 0.9.4 - Luca::Template can now configure its namespace, removing duplicate sprockets class - Luca.Application triggers page:change and sub:page:change events - Luca.Viewport gets enable / disable method for fluid and fullscreen mode - Add configurability to fullscreen behavior on viewport 0.9.41 - Changed asset pipeline payload so that luca-ui uses the index convention 0.9.42 - Added TableView component, which inherits from Luca.components.CollectionView - Expose ways of customizing Luca.View internals. - Added support for @template property on Luca.View. Behaves the same as @bodyTemplate 0.9.45 - Luca.decorate( componentPrototype ).with( mixinName ), Luca.mixin( mixinName ) - View mixins use _initializer methods - FilterableView mixin for CollectionView classes - Added Rails Generator for Luca.Application skeleton. ( thanks @nick-desteffen ) - Adds ability to pass a function reference as a component. The container will call the function, in the context of the container, and use the returned object as the component definition template - Adds a defaults property to containers. This will apply the values as defaults to each component. - Adds Luca.EventsExt an optional core extension which provides additional event binding sugar - Fixes to CollectionView - Improved container / component bindings via html data attributes - bugfixes in CardView 0.9.5 - Luca.Model gets a 'read' method which will a getter function, or get an attribute for the given property you are trying to 'read' - CollectionView is modifiable through several mixins: - Filterable - Paginatable - Loadmaskable - Introduces component definition helpers: extends, behavesAs, triggers, defaultsTo which allow for a more "literate" component definiton style - View helpers moved into mixins: - StateModel - EnhancedProperties - CollectionEventBindings - ApplicationEventBindings - Changed syntax for @componentEvents configuration on Luca.core.Container. - now accepts role, name, or getter method - now accepts * for component, to bind to the same event on all components 0.9.65 - Luca.core.Container components can now be configured with a @container property which accepts any valid CSS selector so long as it is scoped within that container view's @$el. Previously required an element with a specific ID which made it harder to build extendable components with specific render targets 0.9.66 - Luca.core.Container components can now be extended by subclasses by specifying an @extensions property. @extensions work by applying the hash to the component in the same index'd position as that component configuration in the superclass. - Luca.components.CollectionView now has a @loadModels() method which resets the collection with the passed models. - Added @componentMetaData() method which is going to replace the trickery done behind the scenes in Luca.extend - Luca.config.autoApplyCssClassHierarchy if set to true, will add css class names to your luca components to make inheritance based styling easier. 0.9.7 - Introduced publicInterface, publicConfiguration, privateInterface, and privateConfiguration as component registry methods. These methods are intended to offer finer grain control over the component definition process for the purposes of building our auto-generated documentation tool. - Added Luca.concern support on Collection and Model - Renaming 'mixin' and 'module' functionality to 'concern' - Luca.concerns now follow the active support concern in spirit, with __included hooks, ClassMethods handling, etc - Introducing an optional Concern for Luca.Model classes, called ModelPresenter. - The callback argument passed to CardView activate, now gets called in the context of the activated component 0.9.75 - Component registration is now beautifully readable and self documenting, and flexible. Minimally only requires one call to Luca.register(). This allows you to be as descriptive as you like when defining a component, and does not require you to call any definition methods which do not make literary sense in your component description. - Component definition now supports specifying class methods. - Luca.initialize('Namespace') will setup a complete namespace for your application, and give you a Namespace() method which works similar to the Luca() helper. - Added Luca.config.modelBootrstrap and Luca.config.baseParams as pointers to either properties, or methods, which can be used to configure Luca.Collection behavior - Luca.onReady is now the preferred way of launching the application. - Added Luca.Application.routeTo, Luca.Application.controller route building helpers 0.9.78 - Added experimental ability to integrate router into the application itself, via the @routes property - Temporary fix for double rendering bug in containers which had css class based assignments on their containers. - Added experimental support for Luca.SocketManager - Introducing @stateChangeEvents property for views which mixin the StateModel concern. - Added additional ComponentDefinition methods: public, private, configuration, methods - Component MetaData tracks descendants() - SelectField defaults to valueType integer when valueField is "id" 0.9.8 - Luca follows Sprockets / Asset Pipeline Conventions - Renamed - Luca.core.Container to Luca.Container - Luca.components.Panel to Luca.Panel - Added Sortable Concern - Added Luca.log() - Added ability to create aliases / deprecations of components with warning messages