Files
2017-03-08 11:21:27 +01:00

63 lines
3.0 KiB
JavaScript

(function(root, factory) {
if (typeof define === 'function' && define.amd) {
define(function(require, exports, module) {
module.exports = factory(require("framework/html/presets").layoutSets, require("framework/html/layout_controller").DefaultLayoutController, require("ui/toolbar"))
})
}
else {
root.DevExpress.layouts = root.DevExpress.layouts || {};
root.DevExpress.layouts.NavbarLayout = factory(DevExpress.framework.html.layoutSets, DevExpress.framework.html.DefaultLayoutController);
root.DevExpress.framework.html.NavBarController = root.DevExpress.layouts.NavbarLayout.NavBarController
}
}(this, function(layoutSets, DefaultLayoutController) {
var exports = {},
HAS_NAVBAR_CLASS = "has-navbar",
HAS_TOOLBAR_CLASS = "has-toolbar",
LAYOUT_FOOTER_SELECTOR = ".layout-footer",
ACTIVE_TOOLBAR_SELECTOR = ".dx-active-view .dx-toolbar";
var NavBarController = DefaultLayoutController.inherit({
ctor: function(options) {
options = options || {};
options.name = options.name || "navbar";
this.callBase(options)
}, _createNavigationWidget: function(navigationCommands) {
this.callBase(navigationCommands);
this.$navbar = this._$mainLayout.find(".navbar-container");
return this.$navbar
}, _renderNavigationImpl: function(navigationCommands) {
this.callBase(navigationCommands);
if (navigationCommands.length) {
this._$mainLayout.addClass(HAS_NAVBAR_CLASS)
}
}, _showViewImpl: function(viewInfo) {
var that = this;
return that.callBase.apply(that, arguments).done(function() {
var $toolbar = that._$mainLayout.find(LAYOUT_FOOTER_SELECTOR).find(ACTIVE_TOOLBAR_SELECTOR),
isToolbarEmpty = !$toolbar.length || !$toolbar.dxToolbar("instance").option("visible");
that._$mainLayout.toggleClass(HAS_TOOLBAR_CLASS, !isToolbarEmpty)
})
}
});
layoutSets["navbar"] = layoutSets["navbar"] || [];
layoutSets["navbar"].push({
platform: "ios", controller: new NavBarController
});
layoutSets["navbar"].push({
platform: "android", controller: new NavBarController
});
layoutSets["navbar"].push({
platform: "generic", controller: new NavBarController
});
layoutSets["navbar"].push({
platform: "win", controller: new NavBarController
});
layoutSets["split"] = layoutSets["split"] || [];
layoutSets["split"].push({
platform: "win", phone: false, root: true, pane: "master", controller: new NavBarController
});
layoutSets["split"].push({
platform: "win", phone: true, controller: new NavBarController
});
exports.NavBarController = NavBarController;
return exports
}));