blob: e1eba5aa004eec41fe3bae2ab604bd412e53e969 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import Ember from 'ember';
/**
* Create left hand side node manager menu with menu item activated based
* on page being accessed.
*/
export default Ember.Helper.helper(function(params,hash) {
// Place a menu within a panel inside col-md-2 container.
var nodeIdSplitAtPort = hash.nodeId;
var portIndex = nodeIdSplitAtPort.indexOf(':');
if (portIndex !== -1) {
nodeIdSplitAtPort = nodeIdSplitAtPort.substring(0, portIndex) +
':​' + nodeIdSplitAtPort.substring(portIndex + 1);
}
var normalizedNodeId = '';
var splitsAlongDots = nodeIdSplitAtPort.split('.');
if (splitsAlongDots) {
var len = splitsAlongDots.length;
for (var i = 0; i < len; i++) {
normalizedNodeId = normalizedNodeId + splitsAlongDots[i];
if (i !== len - 1) {
normalizedNodeId = normalizedNodeId + '.&#8203;';
}
}
} else {
normalizedNodeId = nodeIdSplitAtPort;
}
var html = '<div class="col-md-2 container-fluid"><div class="panel panel-default">'+
'<div class="panel-heading"><h4>Node Manager<br>(' + normalizedNodeId + ')</h4></div>'+
'<div class="panel-body"><ul class="nav nav-pills nav-stacked" id="stacked-menu">' +
'<ul class="nav nav-pills nav-stacked collapse in"><li';
if (hash.path === 'yarn-node') {
html = html + ' class="active"';
}
html = html + '><a href="#/yarn-node/' + hash.nodeId + '/' + hash.nodeAddr +
'">Node Information</a></li><li';
if (hash.path === 'yarn-node-apps') {
html = html + ' class="active"';
}
html = html + '><a href="#/yarn-node-apps/' + hash.nodeId + '/' + hash.nodeAddr +
'">List of Applications</a></li><li';
if (hash.path === 'yarn-node-containers') {
html = html + ' class="active"';
}
html = html + '><a href="#/yarn-node-containers/' +hash.nodeId + '/' + hash.nodeAddr +
'">List of Containers</a></li></ul></ul></div>';
return Ember.String.htmlSafe(html);
});