/**
 * 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';

/**
 * Base controller for application.
 */
export default Ember.Controller.extend({
  /**
   * Output main top UI menu which is common across all pages.
   * Menu item will be made active based on current path.
   */
  outputMainMenu: function(){
    var path = this.get('currentPath');
    var html = '<li';
    if (path === 'yarn-queue') {
      html = html + ' class="active"';
    }
    html = html + '><a href="yarn-queue/root">Queues<span class="sr-only">' +
        '(current)</span></a></li><li';
    if (path.lastIndexOf('yarn-app', 0) === 0) {
      html = html + ' class="active"';
    }
    html = html + '><a href="yarn-apps">Applications<span class="sr-only">' +
        '(current)</span></a></li><li';
    if (path === 'cluster-overview') {
      html = html + ' class="active"';
    }
    html = html + '><a href="cluster-overview">Cluster Overview<span class=' +
        '"sr-only">(current)</span></a></li><li';
    if (path.lastIndexOf('yarn-node', 0) === 0) {
      html = html + ' class="active"';
    }
    html = html + '><a href="yarn-nodes">Nodes<span class="sr-only">' +
        '(current)</span></a></li>';
    return Ember.String.htmlSafe(html);
  }.property('currentPath'),

  isQueuesTabActive: function() {
    var path = this.get('currentPath');
    if (path === 'yarn-queues') {
      return true;
    }
    return false;
  }.property('currentPath'),

  clusterInfo: function() {
    if (this.model && this.model.clusterInfo) {
      return this.model.clusterInfo.get('firstObject');
    }
    return null;
  }.property('model.clusterInfo'),

  userInfo: function() {
    if (this.model && this.model.userInfo) {
      return this.model.userInfo.get('firstObject');
    }
    return null;
  }.property('model.userInfo'),

  isTimelineUnHealthy: function() {
    if (this.model && this.model.timelineHealth) {
      return this.model.timelineHealth.get('isTimelineUnHealthy');
    }
    return true;
  }.property('model.timelineHealth'),

  isSchedulerUiEnabled: function() {
    if (this.model && this.model.clusterInfo) {
      return this.model.clusterInfo.get('firstObject').get('schedulerUiEnabled');
    }
    return false;
  }.property('model.isSchedulerUiEnabled')
});
