aboutsummaryrefslogtreecommitdiffstats
path: root/ui/imports/ui/components/top-navbar-menu/top-navbar-menu.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/imports/ui/components/top-navbar-menu/top-navbar-menu.js')
-rw-r--r--ui/imports/ui/components/top-navbar-menu/top-navbar-menu.js129
1 files changed, 129 insertions, 0 deletions
diff --git a/ui/imports/ui/components/top-navbar-menu/top-navbar-menu.js b/ui/imports/ui/components/top-navbar-menu/top-navbar-menu.js
new file mode 100644
index 0000000..6968060
--- /dev/null
+++ b/ui/imports/ui/components/top-navbar-menu/top-navbar-menu.js
@@ -0,0 +1,129 @@
+/////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others /
+// /
+// All rights reserved. This program and the accompanying materials /
+// are made available under the terms of the Apache License, Version 2.0 /
+// which accompanies this distribution, and is available at /
+// http://www.apache.org/licenses/LICENSE-2.0 /
+/////////////////////////////////////////////////////////////////////////////////////////
+/*
+ * Template Component: TopNavbarMenu
+ */
+
+import { Template } from 'meteor/templating';
+import { ReactiveDict } from 'meteor/reactive-dict';
+//import * as R from 'ramda';
+
+import { store } from '/imports/ui/store/store';
+//import { setSearchTerm } from '/imports/ui/actions/search-interested-parties';
+//import { notifySearchAutoCompleteTermChanged } from '/imports/ui/actions/search-interested-parties';
+import { idToStr } from '/imports/lib/utilities';
+import factory from 'reactive-redux';
+
+import '/imports/ui/components/search-auto-complete-list/search-auto-complete-list';
+import '/imports/ui/components/get-started/get-started';
+import '/imports/ui/components/env-form/env-form';
+import '/imports/ui/components/alarm-icons/alarm-icons';
+
+import './top-navbar-menu.html';
+
+/*
+ * Lifecycles
+ */
+
+Template.TopNavbarMenu.onCreated(function () {
+ let instance = this;
+
+ instance.state = new ReactiveDict();
+ instance.state.setDefault({
+ isAutoCompleteOpen: false,
+ searchTerm: null
+ });
+
+ const mainEnvIdSelector = (state) => (state.components.mainApp.selectedEnvironment._id);
+ instance.rdxMainEnvId = factory(mainEnvIdSelector, store);
+
+ instance.tempSearchTerm = null;
+ instance.searchDebounced = _.debounce(function () {
+ instance.state.set('searchTerm', instance.tempSearchTerm);
+ instance.state.set('isAutoCompleteOpen', true);
+ }, 250);
+});
+
+Template.TopNavbarMenu.onDestroyed(function () {
+ //let instance = this;
+});
+
+Template.TopNavbarMenu.events = {
+ 'keyup #search': function (event) {
+ let instance = Template.instance();
+ let searchTerm = instance.$(event.target).val();
+
+ instance.tempSearchTerm = searchTerm;
+ instance.searchDebounced();
+ },
+
+ 'click .os-nav-link': function () {
+ let instance = Template.instance();
+ instance.state.set('isAutoCompleteOpen', false);
+ },
+
+ 'click .sm-dashboard-link': function () {
+ Router.go('Dashboard');
+ },
+
+ 'click .sm-get-started-link': function () {
+ Router.go('getstarted');
+ }
+};
+
+Template.TopNavbarMenu.helpers({
+ envId: function () {
+ let instance = Template.instance();
+ return instance.rdxMainEnvId.get();
+ },
+
+ searchTerm: function () {
+ let instance = Template.instance();
+ return instance.state.get('searchTerm');
+ },
+
+ argsSearch: function (envId, searchTerm) {
+ let instance = Template.instance();
+
+ return {
+ isOpen: instance.state.get('isAutoCompleteOpen'),
+ envId: envId,
+ searchTerm: searchTerm,
+ onResultSelected(node) {
+ instance.state.set('isAutoCompleteOpen', false);
+
+ let searchInput = instance.$('input#search');
+ searchInput.val(node.name_path);
+
+ Router.go('environment', { _id: idToStr(node._envId) }, {
+ query: { selectedNodeId: idToStr(node._id) }
+ });
+ },
+ onCloseReq() {
+ instance.state.set('isAutoCompleteOpen', false);
+
+ let searchInput = instance.$('input#search');
+ searchInput.val(null);
+ },
+ };
+ },
+
+ argsEnvForm: function () {
+ let instance = Template.instance();
+ let selectedEnvironment = instance.state.get('selectedEnvironment');
+
+ return {
+ selectedEnvironment: selectedEnvironment,
+ onEnvSelected: function (env) {
+ Router.go('environment', { _id: idToStr(env._id) }, { });
+ }
+ };
+ }
+
+}); // end: helpers