/*______________ | ______ | U I Z E J A V A S C R I P T F R A M E W O R K | / / | --------------------------------------------------- | / O / | MODULE : UizeSite.Widgets.SiteNav.Widget Class | / / / | | / / / /| | ONLINE : http://uize.com | /____/ /__/_| | COPYRIGHT : (c)2013-2016 UIZE | /___ | LICENSE : Available under MIT License or GNU General Public License |_______________| http://uize.com/license.html */ /* Module Meta Data type: Class importance: 1 codeCompleteness: 5 docCompleteness: 5 */ /*? Introduction The =UizeSite.Widgets.SiteNav.Widget= module implements a widget class. *DEVELOPERS:* `Chris van Rensburg` Visual Sampler Below is a visual sampler of the =UizeSite.Widgets.SiteNav.Widget= class... ................................................... << widget >> widgetClass: UizeSite.Widgets.SiteNav.VisualSampler ................................................... */ Uize.module ({ name:'UizeSite.Widgets.SiteNav.Widget', superclass:'Uize.Widgets.NavTree.List.Widget', required:[ 'Uize.Url', 'UizeSite.SiteMap', 'UizeSite.Widgets.SiteNav.Css' ], builder:function (_superclass) { 'use strict'; return _superclass.subclass ({ omegastructor:function () { var m = this; /*** adjust links to be relative to current document ***/ var _getPathToRoot = m.callInherited ('getPathToRoot'); if (_getPathToRoot) { var _pathnameToRoot = _getPathToRoot (), _pathname = Uize.Url.from (location.href).pathname.slice (1), // this seems fragile _itemToExpandTo ; m.traverseTree ({ itemHandler: function (_item,_itemSpecifier) { var _itemLink = _item.link; if (_itemLink != null) { if (!_itemToExpandTo && _itemLink == _pathname) _itemToExpandTo = _itemSpecifier ; _item.link = _pathnameToRoot + _itemLink; } } }); _itemToExpandTo ? m.collapseAllBut (_itemToExpandTo) : m.setExpandedDepth (0) ; } }, set:{ items:UizeSite.SiteMap () }, staticProperties:{ cssModule:UizeSite.Widgets.SiteNav.Css } }); } });