- #437: bootstrapping: new
create().flow().bootstrap()
workflow- BREAKING CHANGE: see ticket for details
- #436: testing: auto-spy unsubscribe-callback of
eventBus.subscribe
- NEW FEATURE: see ticket for details
- #435: navigo: updated to current version with configurable hash string
- NEW FEATURE: see ticket for details
- #348: documentation: added manual on the
plain
adapter - #420: documentation: added upgrade guide
- #434: areaHelper: keep
data-ax-widget-area
attribute - #433: documentation: updated manuals for LaxarJS v2
- #432: router: replaced page.js with Navigo
- BREAKING CHANGE: see ticket for details
- #385: removed CSS loader
- BREAKING CHANGE: see ticket for details
- #419: updated contributor information
- #431: testing: added
eventBusMock.drainAsync()
- NEW FEATURE: see ticket for details
- #429: i18n: allow instantiating widget service without i18n feature config
- NEW FEATURE: see ticket for details
- #408: area helper: improved error logging when calling domAttachTo
- #417: flow: added redirects to paths with parameter values included
- NEW FEATURE: see ticket for details
- #430: page.js: fixed hashbang navigation for bases being prefix of a path
- #428: widget service mocks: provide context to area helper in axVisibilityMock
- #427: project: revert #425
- #423: project: fix building LaxarJS when somewhere inside a
node_modules
directory - #425: project: add browser mappings for other entry points to
package.json
- #426: project: don't use library name
laxar
for polyfills and widget service mocks entry points
- #422: runtime: improved widget services testability
- NEW FEATURE: see ticket for details
- #416: fixed log levels reference in compatibility main file
- #413: adapters: renamed
onBeforeControllerCreation
hook- BREAKING CHANGE: see ticket for details
- #415: project: updated dev-dependencies, upgraded to webpack 2
- #414: areaHelperMock: added missing spies to localName and fullName methods
- #411: simplified visibility checking
- BREAKING CHANGE: see ticket for details
- #412: temporarily re-added widget loader to services
- #398: removed page service from widget adapter services
- BREAKING CHANGE: see ticket for details
- #397: moved adapter errors from widgetLoader to new
adapterUtilities
service- BREAKING CHANGE: see ticket for details
- #394: fixed broken
axI18n.track()
, improved docs and spec coverage
- #380: removed JSON schema processing from runtime
- BREAKING CHANGE: see ticket for details
- #405: JSON schemas have been converted back to JSON and updated to include all artifacts
- BREAKING CHANGE: see ticket for details
- #410: adapters: adapters now get access to the flow-service during bootstrapping
- #407: polyfills: converted to ES2015 and fixed fetch-polyfill path
- #406: fixed typo in comments
- #396: adapters: adapter instances no longer need to have a
technology
property - #276: added and fixed API docs
- #381: flow: clearly distinguish places from their targets and patterns
- BREAKING CHANGE: see ticket for details
- #402: project: polyfill
Object.assign
- #395: cleanup: removed
object.extend
andobject.deepFreeze
- BREAKING CHANGE: see ticket for details
- #349: removed support for MSIE 9
- BREAKING CHANGE: see ticket for details
- #392: flow: removed
entryPoint
/exitPoint
feature- BREAKING CHANGE: see ticket for details
- #390: adapter API: make
artifactProvider
available to adapters and allowcreate()
to be async- NEW FEATURE: see ticket for details
- #389: flow: normalize generated URLs (no trailing
/_
)- BREAKING CHANGE: see ticket for details
- #388: flow: fixed handling of parameter-only places
- #386: flow: double-encode slashes in path segments
- #387: flow: reverted name-change (keep
constructAbsoluteUrl
)- NEW FEATURE: see ticket for details
- #384: flow: simplified handling of invalid empty places
- #375: flow: added support for query parameters
- NEW FEATURE: see ticket for details
- #376: flow: fixed
constructAbsoluteUrl
(was not absolute) - #371: flow: fixed URL encoding of place parameter values
- #366: axFlowService: removed
constructAnchor
andconstructPath
- BREAKING CHANGE: see ticket for details
- #369: documentation: improved docs and specs for object.path/setPath
- #323: documentation: fixed link
- #365: jasmine: set fixed minor version
- #364: axFlowService: widgets can now longer access the flow controller
- BREAKING CHANGE: see ticket for details
- #362: loaders: support new
styleSource
andtemplateSource
in artifact descriptors- NEW FEATURE: see ticket for details
- #317: utilities: removed
path
, addedbrowser.resolve
- #357: runtime: consolidated modules into
lib/runtime
- #361: widget services: re-added
axControls
injection
- #358: adapter API: simplified further
- BREAKING CHANGE: see ticket for details
- #360: routing: use
flow.router.base
instead ofbaseHref
config- BREAKING CHANGE: see ticket for details
- #351: testing: provided full set of widget service mocks
- NEW FEATURE: see ticket for details
- #356: event bus: can be created with a custom error handler
- BREAKING CHANGE: see ticket for details
- #355: json validator: moved to utilities
- #354: event bus: removed unsubscribe methods
- BREAKING CHANGE: see ticket for details
- #353: log: changed level to levels
- BREAKING CHANGE: see ticket for details
- #332: widget services: added axI18n service
- NEW FEATURE: see ticket for details
- #344: widget services: added axAssets service
- #345: added
axConfiguration.ensure
, collected configuration defaults inservices
- #347: timer: removed resumedOrStarted and added missing tests
- #300: plain widget adapter: added axWithDom service and renamed DOM ready hook
- BREAKING CHANGE: see ticket for details
- #309: runtime: slightly simplified area helper
- #333: added
axVisibility
injection to replace the visibility helper of patterns- NEW FEATURE: see ticket for details
- #346: testing: added spec-tests for the various mocks
- #304: loaders: replaced dynamic artifact resolution with prebuilt artifacts listing
- BREAKING CHANGE: see ticket for details
- #270: json validator: simplified return value
- #307: flow: improved page.js integration
- NEW FEATURE: see ticket for details
- BREAKING CHANGE: see ticket for details
- #337: widget adapters: removed applyViewChanges from widget adapter api
- BREAKING CHANGE: see ticket for details
- #340: heartbeat: call listeners asynchronously so that event bus promises have already been processed
- #339: event bus: return unsubscribe function on subscription
- #338: event bus: automatically remove inspectors on widget destruction
- BREAKING CHANGE: see ticket for details
- #308: event bus: removed setMediator and setErrorHandler
- BREAKING CHANGE: see ticket for details
- #335: widget services: build lazily, allow to decorate
- NEW FEATURE: see ticket for details
- #334: added LaxarJS v1.x compatibility helpers
- NEW FEATURE: see ticket for details
- #331: widget services: added axAreaHelper service
- #306: log: added as property to widget context object
- #326: documentation: added manual for injectable widget services
- #321: simplified file listings API and file resource provider
- BREAKING CHANGE: see ticket for details
- #328: allow to configure if and how the instanceId is generated
- NEW FEATURE: see ticket for details
- #327: EventBus: simplified internal API
- #329: made any access to laxarInstances go through a laxar API
- NEW FEATURE: see ticket for details
- #273: removed asset-loading compatibility code for pre-1.0 widgets
- BREAKING CHANGE: see ticket for details
- #310: services: adjusted set of services available to application artifacts
- BREAKING CHANGE: see ticket for details
- #325: project: improved browser-spec reporting
- #324: project: es2015 object-rest/spread, array.includes
- #318: logging: improved source location reporting
- NEW FEATURE: see ticket for details
- #316: fn: removed
- BREAKING CHANGE: see ticket for details
- #319: storage: simplified prefix generation
- #305: widget-areas: no longer generate first/last classes
- BREAKING CHANGE: see ticket for details
- #320: use shared eslint configuration
- #315: added and applied some more complex eslint rules
- #302: added and applied comprehensive eslint rules
- #311: moved webpack-jasmine-html-runner-plugin to its own project
- #312: provide required polyfills as bundle
- NEW FEATURE: see ticket for details
- #303: modules: eliminated all global state
- BREAKING CHANGE: see ticket for details
- #298: modules: load using webpack
- BREAKING CHANGE: see ticket for details
- #299: plain widget adapter: fixed injectable service names
- #291: page loader: merged namespaces for widget- and composition-ids
- #286: flow: fixed flow-validation error message format
- #277: loaders: Fix problem with insertBeforeId in compositions
- #274: loaders: Fix handling of compositions without '.' area
- #296: documentation: fixed string API doc module name
- #269: EventBus: fixed handling of single
did
response after multiple requests with individualwill
responses - #293: loaders: mention composition name and ID when composition features fail validation
- #281: bootstrapping: improved state encapsulation for adapters and modules
- BREAKING CHANGE: see ticket for details
- #284: documentation: fixed broken link
- #295: documentation: fixed order of preliminary readings
- #279: bootstrapping: a custom node for the page can now be used
- BREAKING CHANGE: see ticket for details
- #264: configuration: paths are now configurable via application configuration
- BREAKING CHANGE: see ticket for details
- #272: AngularJS: Removed all dependencies and usages in core
- BREAKING CHANGE: see ticket for details
- #271: page: implemented without AngularJS (not yet in use)
- #267: flow: implemented without AngularJS (not yet in use)
- BREAKING CHANGE: see ticket for details
- #262: services: extracted stateful services
- BREAKING CHANGE: see ticket for details
- #265: visibility service: moved from core to angular adapter
- BREAKING CHANGE: see ticket for details
- #263: modules: made all modules stateless
- BREAKING CHANGE: see ticket for details
- #261: profiling: moved from core to angular adapter
- BREAKING CHANGE: see ticket for details
- #258: directives: moved from core to angular adapter
- BREAKING CHANGE: see ticket for details
- #259: AngularJS: implemented widget area collector without angular
- #257: AngularJS: moved widget adapter to its own repository
- BREAKING CHANGE: see ticket for details
- #256: using locally installed jspm
- #254: documentation: improved and updated manuals
- #250: testing: updated spec runners to Jasmine 2.4
- #246: transformed AMD modules to es2015 modules
- BREAKING CHANGE: see ticket for details
- #249: project: updated copyright year in file header
- #248: tooling: added compositions to page inspection API
- NEW FEATURE: see ticket for details
- #247: tooling: added page inspection API
- NEW FEATURE: see ticket for details
- #244: documentation: added extensive documentation on visibility events
- #243: fn: fixed invalid setTimeout application
- #242: tooling: added
provideQ
factory- NEW FEATURE: see ticket for details
- #241: fn: allow to cancel debounced functions
- NEW FEATURE: see ticket for details
- #240: documentation: fixed prerequisites (yeoman, not grunt-init)
- #238: testing: fixed initialization of
axControls
mock
- #210: runtime: added
axControls
service so that controls can be instantiated in any integration technology- NEW FEATURE: see ticket for details
- #237: runtime: defer page-controller injections until controller instantiation
- #236: loaders: fixed typo which prevented default theme from loading (debug mode)
- #235: loaders: to find CSS in theme, first try the descriptor name
- #234: testing: do not query widget CSS/HTML assets
- #233: loaders: fixed widget theme lookup
- #232: documentation: explain Bower-based widget installation
- NEW FEATURE: see ticket for details
- #195: documentation: added manual on the FileResourceProvider
- NEW FEATURE: see ticket for details
- #230: documentation: fixed example in Widgets and Activities manual
- #223: documentation: explain tooling with the new grunt tasks
- #228: documentation: documented writing widget controller for specific technologies
- #229: adapters: added axFeatures as injection for angular widgets
- #221: adapters: made all relevant services available to plain widgets
- #227: testing: fixed widget descriptor lookup so that it is independent of the widget location
- #225: loaders: prefer widget specification name over directory name if possible
- #226: angular: normalized widget module lookup so that widget.json can use dash-separated-names
- #129: integration: implemented using widgets installed via bower as amd module
- NEW FEATURE: see ticket for details
- #222: require_config: added documentation for widget / control specific configuration
- #215: testing: updated documentation regarding widget tests
- #220: fixed off-by-one bug in HTML spec-runners
- #78: tests: allow to execute spec-tests using a project RequireJS configuration
- NEW FEATURE: see ticket for details
- #219: added Travis-CI build integration
- NEW FEATURE: see ticket for details
- #213: documentation: fixed widget installation manual
- #214: axHeartBeat: using applyViewChanges via page controller
- #193: loaders: implemented nesting of layouts within areas directly in a page
- #127: testing: made necessary changes for new, distinct testing framework
- #211: project: state compatibility with AngularJS 1.4.x
- NEW FEATURE: see ticket for details
- #212: documentation: added basic manual on installing controls
- #150: documentation: added contributor guide
- #209: api-doc: update generated api doc
- #208: configuration: applied default for
i18n.locales
when setting$rootScope.i18n.tags
- #205: documentation: updated README.md according to latest template version
- #207: documentation: adapted to changed naming
- #206: runtime: fixed problem with possible duplicate flow-controller
- #203: documentation: updated manual on controls to cover the new descriptor
- #132: documentation: provided updated API doc for relevant modules
- #202: themes: made path to the default theme configurable
- BREAKING CHANGE: see ticket for details
- #201: testing: fix loading of old-style controls
- #200: loaders, testing: fix loading of controls that are configured as commonjs packages in RequireJS
- #199: project: removed unnecessary dependencies, simplified Bower references
- #197: loaders: read control name from control.json descriptor if present
- NEW FEATURE: see ticket for details
- #198: project: prepared
laxar
npm package
- #196: runtime: fixed default theme loading
- #183: runtime, file_resource_provider: allow to load file listings directly from configuration
- NEW FEATURE: see ticket for details
- #186: loaders: allow to load layouts from theme
- NEW FEATURE: see ticket for details
- #192: loaders: removed duplicate code for defaults application
- #189: loaders: fixed inferring top-level widget configuration defaults for JSON schema v4
- #188: configuration: moved configuration module to utilities
- #187: storage: use per-app unique storage prefixes
- NEW FEATURE: see ticket for details
- #184: documentation: fixed logging configuration documentation
- #185: logging: configuration value not applied correctly
- #128: logging, utilities: simplified and removed some APIs
- BREAKING CHANGE: see ticket for details
- #159: flow: removed support for triggerBrowserReload.
- BREAKING CHANGE: see ticket for details
- #182: runtime: removed live theme switching
- BREAKING CHANGE: see ticket for details
- #180: directives: removed
axPageFade
directive- BREAKING CHANGE: see ticket for details
- #179: loaders: fixed loading of CSS for controls
- #154: widget_adapters: added deprecation warning for old-style widget modules
- #177: runtime: renamed configuration options
- NEW FEATURE: see ticket for details
- #171: documentation: added manual on widget adapters
- #178: runtime: renamed AngularJS modules to match AMD modules
- #176: documentation: replaced the widget category portal with laxarjs
- #175: loaders: changed generated DOM- and topic-IDs to be more compact
- BREAKING CHANGE: see ticket for details
- #174: widget_adapters: simplified widget adapter API
- NEW FEATURE: see ticket for details
- #173: testing: fixed a bug when configuring the widget under test.
- #167: widget_adapters: added injectable axContext as alternative to AngularJS scopes.
- NEW FEATURE: see ticket for details
- #170: loaders: refactored widget loader and widget adapters.
- #168: documentation: added basic documentation on coding style
- #136: storage: removed
window.name
-shim for session-storage- BREAKING CHANGE: see ticket for details
- #130: portal: refactored portal artifacts to runtime and loaders.
- #164: updated bower dependencies jjv and jjve to latest versions.
- #71: angular_adapter: widget and activity scopes are now created on demand.
- #165: i18n: changed localizer.format signature to match string.format
- BREAKING CHANGE: see ticket for details
- #161: portal: removed memory leak fix for msie8
- #158: changed AngularJS support to version 1.3.15.
- BREAKING CHANGE: see ticket for details
- #147: footprint: made jquery from a dependency into a dev-dependency
- NEW FEATURE: see ticket for details
- #162: documentation: fixed theme manual after shop-demo update
- #160: refactoring: normalized AngularJS artifact names
- BREAKING CHANGE: see ticket for details
- #149: testing: always use
widget.json
for widget spec tests- BREAKING CHANGE: see ticket for details
- #139: loader: removed widget compatibility warning for now
- #124: implemented an adapter for plain JavaScript widgets.
- NEW FEATURE: see ticket for details
-
#103: portal: removed json patch compatibility layer.
- BREAKING CHANGE: see ticket for details
-
#117: portal: implemented a flow service that provides place urls usable as hyperlinks.
- BREAKING CHANGE: see ticket for details
-
#35: Upgraded internal JSON schemas to draft v4.
-
#116: performance: the flow is now loaded through the file resource provider
- BREAKING CHANGE: see ticket for details
-
#99: exit points are now configured as
exitPoint
in flow.json.- BREAKING CHANGE: see ticket for details
-
#72: configuration: removed deprecated configuration paths.
- BREAKING CHANGE: see ticket for details
-
#88: footprint: removed
underscore
dependency -
#70: footprint: removed
laxar.text
API (uselaxar.string.format
instead)- BREAKING CHANGE: see ticket for details
-
#92: removed obsolete mixins in favor of compositions.
- BREAKING CHANGE: see ticket for details
-
#181: runtime: added missing default for the configuration key
i18n.locales
- #169: widget_adapters: fixed plain-adapter to use new-style widget module names
- #172: documentation: fixed dead link
- #166: cleanup: removed distribution-related configuration and files
- #163: EventBus: fixed request topic matching
- #156: i18n: by default, use relaxed matching for language tags
- #157: portal: angular-adapter: fixed error reporting
- #145: testing: added missing cancel-method to mock-$timeout
- #155: visibility: page controller now unsubscribes on tear-down
- #152: documentation: added widget installation manual
- NEW FEATURE: see ticket for details
- #153: portal: angular-adapter: simplified widget and controller naming
- NEW FEATURE: see ticket for details
- #151: EventBus: fixed cycle count for zero subscribers
- #148: documentation: more detailed information on the event bus, link to api doc
- #146: documentation: improved the prerequisites in the
README.md
and writing style - #143: documentation: fixed testing configuration example (
andCallFake
, notandCallThrough
) - #142: documentation: fixed task alias for development server (
start
, notdevelop
) - #144: EventBus: reject publishAndGatherReplies-promise after timeout
- BREAKING CHANGE: see ticket for details
- #137: flow: warn on empty place
- #140: EventBus: make timeout configurable
- #126: testing:
axEventBus
injection available to widget controllers during testing
- #138: logging: the instance id is now generated by the log context and transmitted using an $http interceptor
- NEW FEATURE: see ticket for details
- #134: storage: fixed storage in iOS Safari private browsing
- #125: axLayout: emit AngularJS event when loaded
- NEW FEATURE: see ticket for details
- #113: documentation: manual on tools
- #122: testing: allow to inject dependencies
- NEW FEATURE: see ticket for details
- #123: portal: preload widget assets on page load
- #117: portal: implemented a flow service that provides place urls usable as hyperlinks.
- #121: documentation: have README.md next steps point to manuals
- #118: performance: removed $timeout from axPageFade
- #120: portal: fixed flaky timestamp test
- #119: portal: fixed race condition in page loader
- #108: documentation: unify code-snippet format, and some polish
- #109: documentation: added manual on providing controls
- #107: angular widget adapter: added widget specific event bus service.
- #106: documentation: fixed manuals, improved introduction in README.md
- #93: refactoring: extracted page related services into own files.
- #98: documentation: added manual on events and pub/sub
- #100: widget loader: added angular widget as default integration.
- #105: moved resumable timer handling from flow to timer.
- #104: configuration: deprecated configuration keys are no handled at one place.
- #101: documentation: use "«" rather than "<<" for backwards navigation links
- #76: documentation: widgets and activities
- #75: documentation: flow and places.
- #96: documentation: restructured existing documents and added stubs for missing ones.
- #95: documentation: wrote a motivational article for LaxarJS.
- #94: footprint: removed the outdated app stub in favor of grunt-init (see README.md)
- #38: documentation: pages and compositions.
- #91: portal: make sure that widget DOM is attached when linking
- #90: documentation: secondary parts of any LaxarJS application
- NEW FEATURE: see ticket for details
- #89: documentation: primary concepts of LaxarJS
- #84: storage: storing
undefined
now causes the entry to be removed
- #87: portal: Ensure anonymization of logged events.
- #86: logging: Added tests to ensure that string format compatible format strings using indexed placeholders are supported.
- #85: utilities: Implemented support for value mapping functions in string.format.
- NEW FEATURE: see ticket for details
- #83: portal: provided a timestamp service with a mock that works with jasmine
- NEW FEATURE: see ticket for details
- #81: added check for duplicate area definitions in layouts
- #82: implemented directives axId and axFor
- NEW FEATURE: see ticket for details
- #80: storage: Improved detection of WebStorage API for Internet Explorer
- #79: assert: details given as object are now serialized
- #77: flow: the log tag
PLCE
with the current place name is set after navigation
- #73: portal: fixed lookup of merged CSS file
- #69: portal: moved setting widget root element IDs to widget loader
- #68: fixed wrongly global assert in jshintrc.
- #67: re-added missing widget root element IDs.
- #65: fixed navigation being broken when parameter values were missing.
- #66: prevented endless navigation ping pong in flow controller
- #63: axVisibilityService: use scope.$id to identify handlers, not scope.id
- #62: fixed endless recursion on navigation when place and target have the same name.
- #61: added first profiling tools for scope property watchers.
- NEW FEATURE: see ticket for details
- #60: tests: make sure PhantomJS is installed properly, before running spec tests.
- #52: portal, testing: added visibility events and the
axVisibilityService
- NEW FEATURE: see ticket for details
- #59: portal: fixed dangling comma in timer imports
- #58: portal, json: fixed copyright headers
- #57: portal: fixed double-navigation problem which can lead to skipping places
- #56: object: removed all direct calls of hasOwnProperty.
- #55: run_spec: disable loading the
widget.json
if thespec_runner.js
containswidgetJson: false
- #54: testing: fixed broken testBed injection of $q and $timeout
- #50: performance: decoupled instantiation of widget controllers from their DOM
- #49: added compatibility layer for JSON patch.
- NEW FEATURE: see ticket for details
- #48: Promises generated by the event bus are now scheduled by the event bus, not by AngularJS
$apply
. - #51: Remove some obsolete NPM
devDependencies
. - #47: Do not schedule another full event-bus tick while one is already being processed.
- #46: fixed misinterpretation of falsy required attribute in json schema converter.
- #45: i18n: adjusted localizer.format specs to changes from #43.
- #43: string: added new function
string.format
as simpler replacement fortext
library.- NEW FEATURE: see ticket for details
- #42: portal: added 'language-tag', 'topic-map' and 'localization' formats.
- NEW FEATURE: see ticket for details
- #40: portal: fixed 'flag-topic' pattern.
- #39: portal: added JSON-schema formats 'topic', 'sub-topic' and 'flag-topic' to widget loader.
- NEW FEATURE: see ticket for details
- #37: improved browsing of existing api doc and fixed some syntactical errors.
- #36: jshintrc: disabled enforcement of dot notation for object property access.
- #34: Enabled specification of widget features using JSON schema draft v4 notation.
- NEW FEATURE: see ticket for details
- #33: EventBus: added event object to the information sent to inspectors on deliver actions.
- #31: Refactored JSON validator for better error messages and schema v4 support.
- NEW FEATURE: see ticket for details
- #32: Configuration: Consolidated and documented configuration options under docs/manuals/configuration.md
- NEW FEATURE: see ticket for details
- #30: PageLoader: added missing check for duplicate composition ids.
- #27: Portal: Enhanced the portal event bus performance by not requiring a digest/render-cycle on each tick
- #28: Fixed null values in widget features within compositions being turned into empty objects.
- #29: PageLoader: composition features that are not configured do not result in undefined values for widget features.
- #25: Only the page relevant for the current place is loaded now.
- #17: Testing: The testBed.setup method can now simulate default-events
- NEW FEATURE: see ticket for details
- #26: Testing: Fixed the responseTransform option for http-mock
- #22: FileResourceProvider: allow to embed files into listings
- NEW FEATURE: see ticket for details
- #15: FileResourceProvider, PageLoader: Prevented duplicate (simultaneous) requests to file listings
- #24: Widgets and compositions can now be disabled in pages.
- NEW FEATURE: see ticket for details
- #23: FileResourceProvider: Slashes are now correctly handled when checking a file for existence in a listing.
- #21: The file resource provider now normalizes its root path.
- #20: Fixed event bus inspectors not being notified on unsubscription.
- #14: Fixed navigation being broken after successive navigation to the current location.
- #13: The current place is now send as part of the didNavigate event.
- #12: Testing: Get the LaxarJS tests running in Karma again.
- #11: Testing: Handle
spec_runner.js
that are not in a subdirectory of the RequireJS'baseUrl
. - #10: Testing: Loading controls during tests now works in Karma.
- #9: Update Bower from ~1.2.8 to ~1.3.3.
- #8: Fixed the cleanup mechanism for generated widget areas.
- #6: The Portal now initializes an i18n object on the application's
$rootScope
- #5: Testing: The run_spec-script (used to set up the spec tests) now loads controls declared in the widget.json
- #4: PageLoader: Added missing optional negation of generated topics and replacement of expressions in feature keys
- #3: Added url formatting for links in Readme.md
- #2: Fixed grunt-init step in Getting-Started docs
- #1: Added initial Getting-Started documentation