Skip to content

Commit

Permalink
feat: add AnnouncementBar to viewport of extjs-comp-navport
Browse files Browse the repository at this point in the history
refs conjoon/extjs-comp-navport#15
  • Loading branch information
ThorstenSuckow committed Oct 29, 2021
1 parent 75a6eef commit ff1db38
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 10 deletions.
40 changes: 32 additions & 8 deletions src/view/NavigationViewport.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
* leaving a content panel with an {@link Ext.layout.container.Card}-layout.
*
* +-----------------------------------------+
* | announcement bar |
* +-----------------------------------------+
* | toolbar |
* +-----------------------------------------+
* | | |
Expand Down Expand Up @@ -119,6 +121,7 @@ Ext.define("coon.navport.view.NavigationViewport", {
alias: "widget.cn_navport",

requires: [
"coon.comp.component.AnnouncementBar",
"coon.navport.view.NavigationToolbar",
"coon.navport.view.controller.NavigationViewportController",
"coon.navport.view.ContentWrap",
Expand All @@ -138,6 +141,8 @@ Ext.define("coon.navport.view.NavigationViewport", {
},

items: [{
xtype: "cn_comp-announcementbar"
}, {
reference: "cn_navport_ref_tbar",
xtype: "cn_navport-tbar"
}, {
Expand All @@ -147,6 +152,19 @@ Ext.define("coon.navport.view.NavigationViewport", {
}],


/**
* @inheritdoc
*/
initComponent () {

const me = this;
me.callParent(arguments);

coon.Announcement.register(me.down("cn_comp-announcementbar"));

},


/**
* Consumes a javascript native object and passes the entries found within
* to the #buildNavigationItems ans #buildNavItems
Expand All @@ -158,9 +176,10 @@ Ext.define("coon.navport.view.NavigationViewport", {
* @throws bubbles the ecxeptions od #buildNavigationItems and
* #buildPermaNavItems
*/
addPostLaunchInfo: function (info) {
addPostLaunchInfo (info) {
"use strict";

var me = this;
const me = this;

if (Object.prototype.hasOwnProperty.call(info,"navigation")) {
me.getController().addMainNavigationItems(info.navigation);
Expand All @@ -180,7 +199,8 @@ Ext.define("coon.navport.view.NavigationViewport", {
*
* see {@link coon.navport.view.controller.NavigationViewportController#hideNavigation}
*/
hideNavigation: function (hide) {
hideNavigation (hide) {
"use strict";
this.getController().hideNavigation(hide);
},

Expand All @@ -198,7 +218,8 @@ Ext.define("coon.navport.view.NavigationViewport", {
*
* @return {coon.navport.view.pages.Page404}
*/
showUnmatchedRouteNotification: function (missingHash, defaultToken) {
showUnmatchedRouteNotification (missingHash, defaultToken) {
"use strict";

return Ext.create("coon.navport.view.pages.Page404", {
title: Ext.String.format("\"{0}\" not found", missingHash),
Expand All @@ -212,8 +233,9 @@ Ext.define("coon.navport.view.NavigationViewport", {
*
* @see coon.navport.view.controller.NavigationViewportController#addViewForHash
*/
activateViewForHash: function (hash, defaultToken) {
var me = this;
activateViewForHash (hash, defaultToken) {
"use strict";
const me = this;
me.cleanup();
return me.getController().addViewForHash(hash, defaultToken);
},
Expand All @@ -225,8 +247,10 @@ Ext.define("coon.navport.view.NavigationViewport", {
* @see coon.navport.view.controller.NavigationViewportController#isCurrentViewClosable
* @see coon.navport.view.controller.NavigationViewportController#ctrl.closeCurrentView();
*/
cleanup: function () {
var me = this,
cleanup () {
"use strict";
const
me = this,
ctrl = me.getController();

if (ctrl.isCurrentViewClosable()) {
Expand Down
9 changes: 9 additions & 0 deletions tests/src/view/NavigationViewportTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,15 @@ StartTest((t) => {
t.expect(viewport.lookup("cn_navport_ref_tbar") instanceof coon.navport.view.NavigationToolbar).toBe(true);
});

t.it("Should have the AnnouncementBar", (t) => {

const announcementSpy = t.spyOn(coon.Announcement, "register");
viewport = Ext.create("coon.navport.view.NavigationViewport");
t.isInstanceOf(viewport.down("cn_comp-announcementbar"), "coon.comp.component.AnnouncementBar");
t.expect(announcementSpy.calls.count()).toBe(1);
t.expect(announcementSpy.calls.all()[0].args[0]).toBe(viewport.down("cn_comp-announcementbar"));
announcementSpy.remove();
});

t.it("Should be possible to hide the navigation", (t) => {
viewport = Ext.create("coon.navport.view.NavigationViewport", Ext.isModern ? {
Expand Down
3 changes: 1 addition & 2 deletions tests/tests.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ export default {
},

classic: {
"coon.comp.component.AnnouncementBar": "../node_modules/@coon-js/extjs-lib-comp/classic/src/component/AnnouncementBar.js",
"coon.navport.view.NavigationToolbar": "../classic/src/view/NavigationToolbar.js",
"coon.comp.container.Viewport": "../node_modules/@coon-js/extjs-lib-comp/classic/src/container/Viewport.js"
}
Expand All @@ -65,5 +66,3 @@ export default {
js: "../node_modules/@l8js/l8/dist/l8.runtime.umd.js"
}
};


0 comments on commit ff1db38

Please sign in to comment.