You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by vs...@apache.org on 2017/06/23 07:02:31 UTC

[22/35] ambari git commit: AMBARI-21330.Remove slider view from Ambari-3.0.0(Venkata Sairam)

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/helpers/ajax.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/helpers/ajax.js b/contrib/views/slider/src/main/resources/ui/app/helpers/ajax.js
deleted file mode 100644
index bfb976d..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/helpers/ajax.js
+++ /dev/null
@@ -1,388 +0,0 @@
-/**
- * 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.
- */
-
-/**
- * Config for each ajax-request
- *
- * Fields example:
- *  mock - testMode url
- *  real - real url (without API prefix)
- *  type - request type (also may be defined in the format method)
- *  format - function for processing ajax params after default formatRequest. May be called with one or two parameters (data, opt). Return ajax-params object
- *  schema - basic validation schema (tv4) for response (optional)
- *
- * @type {Object}
- */
-var urls = {
-
-  'slider.getViewParams': {
-    real: '?fields=ViewInstanceInfo',
-    mock: '/data/resource/slider-properties.json',
-    headers: {
-      Accept: "text/plain; charset=utf-8",
-      "Content-Type": "text/plain; charset=utf-8"
-    },
-    schema: {
-      required: ['ViewInstanceInfo'],
-      properties: {
-        ViewInstanceInfo: {
-          required: ['properties', 'description', 'label']
-        }
-      }
-    }
-  },
-
-  'slider.getViewParams.v2': {
-    real: 'resources/status',
-    mock: '/data/resource/slider-properties-2.json',
-    headers: {
-      "Accept": "application/json; charset=utf-8",
-      "Content-Type": "text/plain; charset=utf-8"
-    },
-    schema: {
-      required: ['version', 'validations', 'parameters'],
-      properties: {
-        validations: {
-          type: 'array'
-        },
-        parameters: {
-          type : 'object'
-        }
-      }
-    }
-  },
-
-  'mapper.applicationTypes': {
-    real: 'apptypes?fields=*',
-    mock: '/data/apptypes/all_fields.json',
-    headers: {
-      Accept: "text/plain; charset=utf-8",
-      "Content-Type": "text/plain; charset=utf-8"
-    },
-    schema: {
-      required: ['items'],
-      properties: {
-        items: {
-          type: 'array',
-          items: {
-            required: ['id', 'typeComponents', 'typeConfigs'],
-            properties: {
-              typeConfigs: {
-                type: 'object'
-              },
-              typeComponents: {
-                type: 'array',
-                items: {
-                  required: ['id', 'name', 'category', 'displayName']
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-  },
-
-  'mapper.applicationApps': {
-    real: '?fields=apps/*',
-    mock: '/data/apps/apps.json',
-    headers: {
-      Accept: "text/plain; charset=utf-8",
-      "Content-Type": "text/plain; charset=utf-8"
-    },
-    'format': function() {
-      return {
-        timeout: 20000
-      };
-    },
-    schema: {
-      required: ['items'],
-      properties: {
-        items: {
-          type: 'array',
-          items: {
-            required: ['id', 'description', 'diagnostics', 'name', 'user', 'state', 'type', 'components', 'configs'],
-            alerts: {
-              type: 'object',
-              detail: {
-                type: 'array'
-              }
-            }
-          }
-        }
-      }
-    }
-  },
-
-  'mapper.applicationStatus': {
-    real: 'resources/status',
-    mock: '/data/resource/status_true.json'
-  },
-
-  'saveInitialValues': {
-    real: '',
-    mock: '/data/resource/empty_json.json',
-    headers: {
-      "Content-Type": "text/plain; charset=utf-8"
-    },
-    format: function (data) {
-      return {
-        type: 'PUT',
-        data: JSON.stringify(data.data),
-        dataType: 'text'
-      }
-    }
-  },
-
-  'validateAppName': {
-    real: 'apps?validateAppName={name}',
-    mock: '/data/resource/empty_json.json',
-    format: function () {
-      return {
-        dataType: 'text',
-        showErrorPopup: true
-      }
-    }
-  },
-
-  'createNewApp': {
-    real: 'apps',
-    mock: '/data/resource/empty_json.json',
-    headers: {
-      "Content-Type": "text/plain; charset=utf-8"
-    },
-    format: function (data) {
-      return {
-        type: 'POST',
-        data: JSON.stringify(data.data),
-        dataType: 'text',
-        showErrorPopup: true
-      }
-    }
-  },
-
-  'destroyApp': {
-    real: 'apps/{id}',
-    mock: '',
-    format: function () {
-      return {
-        method: 'DELETE',
-        dataType: 'text',
-        showErrorPopup: true
-      }
-    }
-  },
-
-  'changeAppState': {
-    real: 'apps/{id}',
-    mock: '',
-    headers: {
-      "Content-Type": "text/plain; charset=utf-8"
-    },
-    format: function (data) {
-      return {
-        method: 'PUT',
-        data: JSON.stringify(data.data),
-        dataType: 'text',
-        showErrorPopup: true
-      }
-    }
-  },
-  'flexApp': {
-    real: 'apps/{id}',
-    mock: '',
-    headers: {
-      "Content-Type": "text/plain; charset=utf-8"
-    },
-    format: function (data) {
-      return {
-        method: 'PUT',
-        data: JSON.stringify(data.data),
-        dataType: 'text',
-        showErrorPopup: true
-      }
-    }
-  },
-
-  'metrics': {
-    real: 'apps/{id}?fields=metrics/{metric}',
-    mock: '/data/metrics/metric.json',
-    headers: {
-      "Accept": "text/plain; charset=utf-8",
-      "Content-Type": "text/plain; charset=utf-8"
-    }
-  },
-
-  'metrics2': {
-    real: 'apps/{id}/metrics/{metric}',
-    mock: '/data/metrics/metric2.json'
-  },
-
-  'metrics3': {
-    real: 'apps/{id}/metrics/{metric}',
-    mock: '/data/metrics/metric3.json'
-  },
-
-  'metrics4': {
-    real: 'apps/{id}/metrics/{metric}',
-    mock: '/data/metrics/metric4.json'
-  }
-
-};
-/**
- * Replace data-placeholders to its values
- *
- * @param {String} url
- * @param {Object} data
- * @return {String}
- */
-var formatUrl = function (url, data) {
-  if (!url) return null;
-  var keys = url.match(/\{\w+\}/g);
-  keys = (keys === null) ? [] : keys;
-  if (keys) {
-    keys.forEach(function (key) {
-      var raw_key = key.substr(1, key.length - 2);
-      var replace;
-      if (!data || !data[raw_key]) {
-        replace = '';
-      }
-      else {
-        replace = data[raw_key];
-      }
-      url = url.replace(new RegExp(key, 'g'), replace);
-    });
-  }
-  return url;
-};
-
-/**
- * this = object from config
- * @return {Object}
- */
-var formatRequest = function (data) {
-  var opt = {
-    type: this.type || 'GET',
-    dataType: 'json',
-    async: true,
-    headers: this.headers || {Accept: "application/json; charset=utf-8"}
-  };
-  if (App.get('testMode')) {
-    opt.url = formatUrl(this.mock ? this.mock : '', data);
-    opt.type = 'GET';
-  }
-  else {
-    var prefix = App.get('urlPrefix');
-    if (Em.get(data, 'urlPrefix')) {
-      prefix = Em.get(data, 'urlPrefix');
-    }
-    var url = formatUrl(this.real, data);
-    opt.url = prefix + (url ? url : '');
-    if (this.format) {
-      jQuery.extend(opt, this.format(data, opt));
-    }
-  }
-
-  return opt;
-};
-
-/**
- * Wrapper for all ajax requests
- *
- * @type {Object}
- */
-var ajax = Em.Object.extend({
-  /**
-   * Send ajax request
-   *
-   * @param {Object} config
-   * @return {$.ajax} jquery ajax object
-   *
-   * config fields:
-   *  name - url-key in the urls-object *required*
-   *  sender - object that send request (need for proper callback initialization) *required*
-   *  data - object with data for url-format
-   *  beforeSend - method-name for ajax beforeSend response callback
-   *  success - method-name for ajax success response callback
-   *  error - method-name for ajax error response callback
-   *  callback - callback from <code>App.updater.run</code> library
-   */
-  send: function (config) {
-
-    Ember.assert('Ajax sender should be defined!', config.sender);
-    Ember.assert('Invalid config.name provided - ' + config.name, urls[config.name]);
-
-    var opt = {};
-
-    // default parameters
-    var params = {
-      clusterName: App.get('clusterName')
-    };
-
-    if (config.data) {
-      jQuery.extend(params, config.data);
-    }
-
-    opt = formatRequest.call(urls[config.name], params);
-    opt.context = this;
-
-    // object sender should be provided for processing beforeSend, success, error and complete responses
-    opt.beforeSend = function (xhr) {
-      if (config.beforeSend) {
-        config.sender[config.beforeSend](opt, xhr, params);
-      }
-    };
-
-    opt.success = function (data) {
-      console.log("TRACE: The url is: " + opt.url);
-
-      // validate response if needed
-      if (urls[config.name].schema) {
-        var result = tv4.validateMultiple(data, urls[config.name].schema);
-        if (!result.valid) {
-          result.errors.forEach(function (error) {
-            console.warn('Request: ' + config.name, 'WARNING: ', error.message, error.dataPath);
-          });
-        }
-      }
-
-      if (config.success) {
-        config.sender[config.success](data, opt, params);
-      }
-    };
-
-    opt.error = function (request, ajaxOptions, error) {
-      if (config.error) {
-        config.sender[config.error](request, ajaxOptions, error, opt, params);
-      } else if (config.sender.defaultErrorHandler) {
-        config.sender.defaultErrorHandler.call(config.sender, request, opt.url, opt.type, opt.showErrorPopup);
-      }
-    };
-
-    opt.complete = function (xhr, status) {
-      if (config.complete) {
-        config.sender[config.complete](xhr, status);
-      }
-    };
-
-    return $.ajax(opt);
-  }
-
-});
-
-App.ajax = ajax.create({});

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/helpers/helper.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/helpers/helper.js b/contrib/views/slider/src/main/resources/ui/app/helpers/helper.js
deleted file mode 100644
index 9986c55..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/helpers/helper.js
+++ /dev/null
@@ -1,169 +0,0 @@
-/**
- * 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.
- */
-
-
-String.prototype.format = function () {
-  var args = arguments;
-  return this.replace(/{(\d+)}/g, function (match, number) {
-    return typeof args[number] != 'undefined' ? args[number] : match;
-  });
-};
-
-/**
- * Return formatted string with inserted spaces before upper case and replaced '_' to spaces
- * Also capitalize first letter
- *
- * Examples:
- * 'apple' => 'Apple'
- * 'apple_banana' => 'Apple banana'
- * 'apple_bananaUranium' => 'Apple banana Uranium'
- */
-String.prototype.humanize = function () {
-  var content = this;
-  return content && (content[0].toUpperCase() + content.slice(1)).replace(/([A-Z])/g, ' $1').replace(/_/g, ' ');
-}
-
-/**
- * Helper function for bound property helper registration
- * @memberof App
- * @method registerBoundHelper
- * @param name {String} name of helper
- * @param view {Em.View} view
- */
-App.registerBoundHelper = function(name, view) {
-  Ember.Handlebars.registerHelper(name, function(property, options) {
-    options.hash.contentBinding = property;
-    return Ember.Handlebars.helpers.view.call(this, view, options);
-  });
-};
-
-/**
- * Return formatted string with inserted <code>wbr</code>-tag after each dot
- *
- * @param {String} content
- *
- * Examples:
- *
- * returns 'apple'
- * {{formatWordBreak 'apple'}}
- *
- * returns 'apple.<wbr />banana'
- * {{formatWordBreak 'apple.banana'}}
- *
- * returns 'apple.<wbr />banana.<wbr />uranium'
- * {{formatWordBreak 'apple.banana.uranium'}}
- */
-App.registerBoundHelper('formatWordBreak', Em.View.extend({
-  tagName: 'span',
-  template: Ember.Handlebars.compile('{{{view.result}}}'),
-  devider:'/',
-
-  /**
-   * @type {string}
-   */
-  result: function() {
-    var d = this.get('devider');
-    var r = new RegExp('\\'+d,"g");
-    return this.get('content') && this.get('content').toString().replace(r, d+'<wbr />');
-  }.property('content')
-}));
-
-/**
- * Return formatted string with inserted spaces before upper case and replaced '_' to spaces
- * Also capitalize first letter
- *
- * @param {String} content
- *
- * Examples:
- *
- * returns 'apple'
- * {{humanize 'Apple'}}
- *
- * returns 'apple_banana'
- * {{humanize 'Apple banana'}}
- *
- * returns 'apple_bananaUranium'
- * {{humanize 'Apple banana Uranium'}}
- */
-App.registerBoundHelper('humanize', Em.View.extend({
-
-  tagName: 'span',
-
-  template: Ember.Handlebars.compile('{{{view.result}}}'),
-
-  /**
-   * @type {string}
-   */
-  result: function() {
-    var content = this.get('content');
-    return content && content.humanize();
-  }.property('content')
-}));
-
-/**
- * Ambari overrides the default date transformer.
- * This is done because of the non-standard data
- * sent. For example Nagios sends date as "12345678".
- * The problem is that it is a String and is represented
- * only in seconds whereas Javascript's Date needs
- * milliseconds representation.
- */
-DS.attr.transforms = {
-  date: {
-    from: function (serialized) {
-      var type = typeof serialized;
-      if (type === 'string') {
-        serialized = parseInt(serialized);
-        type = typeof serialized;
-      }
-      if (type === 'number') {
-        if (!serialized) {  //serialized timestamp = 0;
-          return 0;
-        }
-        // The number could be seconds or milliseconds.
-        // If seconds, then the length is 10
-        // If milliseconds, the length is 13
-        if (serialized.toString().length < 13) {
-          serialized = serialized * 1000;
-        }
-        return new Date(serialized);
-      } else if (serialized === null || serialized === undefined) {
-        // if the value is not present in the data,
-        // return undefined, not null.
-        return serialized;
-      } else {
-        return null;
-      }
-    },
-    to: function (deserialized) {
-      if (deserialized instanceof Date) {
-        return deserialized.getTime();
-      } else {
-        return null;
-      }
-    }
-  }
-};
-/**
- * Allow get translation value used in I18n for attributes that ends with Translation.
- * For example:
- * <code>
- *  {{input name="new" placeholderTranslation="any"}}
- * </code>
- **/
-Em.TextField.reopen(Em.I18n.TranslateableAttributes);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/helpers/string_utils.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/helpers/string_utils.js b/contrib/views/slider/src/main/resources/ui/app/helpers/string_utils.js
deleted file mode 100644
index 9675f49..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/helpers/string_utils.js
+++ /dev/null
@@ -1,163 +0,0 @@
-/**
- * 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.
- */
-
-module.exports = {
-
-  pad: function(str, len, pad, dir) {
-
-    var STR_PAD_LEFT = 1;
-    var STR_PAD_RIGHT = 2;
-    var STR_PAD_BOTH = 3;
-
-    if (typeof(len) == "undefined") { len = 0; }
-    if (typeof(pad) == "undefined") { pad = ' '; }
-    if (typeof(dir) == "undefined") { dir = STR_PAD_RIGHT; }
-
-    if (len + 1 >= str.length) {
-
-      switch (dir){
-
-        case STR_PAD_LEFT:
-          str = Array(len + 1 - str.length).join(pad) + str;
-          break;
-
-        case STR_PAD_BOTH:
-          var padlen = len - str.length;
-          var right = Math.ceil((padlen) / 2);
-          var left = padlen - right;
-          str = Array(left+1).join(pad) + str + Array(right+1).join(pad);
-          break;
-
-        default:
-          str = str + Array(len + 1 - str.length).join(pad);
-          break;
-
-      } // switch
-
-    }
-    return str;
-
-  },
-  underScoreToCamelCase: function(name){
-    function replacer(str, p1, p2, offset, s) {
-      return str[1].toUpperCase();
-    }
-    return name.replace(/_\w/g,replacer);
-  },
-
-  /**
-   * Forces given string into upper camel-case representation. The first
-   * character of each word will be capitalized with the rest in lower case.
-   */
-  getCamelCase : function(name) {
-    if (name != null) {
-      return name.toLowerCase().replace(/(\b\w)/g, function(f) {
-        return f.toUpperCase();
-      })
-    }
-    return name;
-  },
-
-  /**
-   * Compare two versions by following rules:
-   * first higher than second then return 1
-   * first lower than second then return -1
-   * first equal to second then return 0
-   * @param first {string}
-   * @param second {string}
-   * @return {number}
-   */
-  compareVersions: function(first, second){
-    if (!(typeof first === 'string' && typeof second === 'string')) {
-      return false;
-    }
-    if (first === '' || second === '') {
-      return false;
-    }
-    var firstNumbers = first.split('.');
-    var secondNumbers = second.split('.');
-    var length = 0;
-    var i = 0;
-    var result = false;
-    if(firstNumbers.length === secondNumbers.length) {
-      length = firstNumbers.length;
-    } else if(firstNumbers.length < secondNumbers.length){
-      length = secondNumbers.length;
-    } else {
-      length = firstNumbers.length;
-    }
-
-    while(i < length && !result){
-      firstNumbers[i] = (firstNumbers[i] === undefined) ? 0 : window.parseInt(firstNumbers[i]);
-      secondNumbers[i] = (secondNumbers[i] === undefined) ? 0 : window.parseInt(secondNumbers[i]);
-      if(firstNumbers[i] > secondNumbers[i]){
-        result = 1;
-        break;
-      } else if(firstNumbers[i] === secondNumbers[i]){
-        result = 0;
-      } else if(firstNumbers[i] < secondNumbers[i]){
-        result = -1;
-        break;
-      }
-      i++;
-    }
-    return result;
-  },
-
-  isSingleLine: function(string){
-    return String(string).trim().indexOf("\n") == -1;
-  },
-  /**
-   * transform array of objects into CSV format content
-   * @param array
-   * @return {Array}
-   */
-  arrayToCSV: function(array){
-    var content = "";
-    array.forEach(function(item){
-      var row = [];
-      for(var i in item){
-        if(item.hasOwnProperty(i)){
-          row.push(item[i]);
-        }
-      }
-      content += row.join(',') + '\n';
-    });
-    return content;
-  },
-
-  /**
-   * Extracts filename from linux/unix path
-   * @param path
-   * @return {string}: filename
-   */
-  getFileFromPath: function(path) {
-    if (!path || typeof path !== 'string') {
-      return '';
-    }
-    return path.replace(/^.*[\/]/, '');
-  },
-
-  getPath: function(path) {
-    if (!path || typeof path !== 'string' || path[0] != '/') {
-      return '';
-    }
-    var last_slash = path.lastIndexOf('/');
-    return (last_slash!=0)?path.substr(0,last_slash):'/';
-  }
-};

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/initialize.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/initialize.js b/contrib/views/slider/src/main/resources/ui/app/initialize.js
deleted file mode 100755
index 03fd52a..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/initialize.js
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- * 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.
- */
-
-'use strict';
-
-window.App = require('config/app');
-
-require('config/router');
-require('config/store');
-require('translations');
-require('mappers/mapper');
-
-App.initializer({
-  name: "preload",
-
-  initialize: function(container, application) {
-    var viewId = 'SLIDER';
-    var viewVersion = '1.0.0';
-    var instanceName = 'SLIDER_1';
-    if (location.pathname != null) {
-      var splits = location.pathname.split('/');
-      if (splits != null && splits.length > 4) {
-        viewId = splits[2];
-        viewVersion = splits[3];
-        instanceName = splits[4];
-      }
-    }
-    
-    application.reopen({
-      /**
-       * Test mode is automatically enabled if running on brunch server
-       * @type {bool}
-       */
-      testMode: (location.port == '3333'),
-
-      /**
-       * @type {string}
-       */
-      name: viewId,
-
-      /**
-       * Slider version
-       * @type {string}
-       */
-      version: viewVersion,
-
-      /**
-       * @type {string}
-       */
-      instance: instanceName,
-
-      /**
-       * @type {string}
-       */
-      label: instanceName,
-
-      /**
-       * @type {string|null}
-       */
-      description: null,
-
-      /**
-       * API url for Slider
-       * Format:
-       *  <code>/api/v1/views/[VIEW_NAME]/versions/[VERSION]/instances/[INSTANCE_NAME]/</code>
-       * @type {string}
-       */
-      urlPrefix: function() {
-        return '/api/v1/views/%@1/versions/%@2/instances/%@3/'.fmt(this.get('name'), this.get('version'), this.get('instance'));
-      }.property('name', 'version', 'instance'),
-
-      /**
-       * Should Slider View be enabled
-       * @type {bool}
-       */
-      viewEnabled: false,
-
-      /**
-       * Should Slider View be disabled
-       * @type {bool}
-       */
-      viewDisabled: Em.computed.not('viewEnabled'),
-
-      /**
-       * List of errors
-       * @type {string[]}
-       */
-      viewErrors: [],
-
-      /**
-       * Host with Metrics Server (AMBARI_METRICS)
-       * @type {string|null}
-       */
-      metricsHost: null,
-
-      /**
-       * Port of Metrics Server (AMBARI_METRICS port)
-       * @type {array|null}
-       */
-      metricsPort: null,
-
-      /**
-       * Last time when mapper ran
-       * @type {null|number}
-       */
-      mapperTime: null,
-
-      /**
-       * Default java_home value for Slider View instance
-       * @type {string|null}
-       */
-      javaHome: null
-
-    });
-    if(!window.QUnit) {
-      var sliderController = application.__container__.lookup('controller:Slider');
-      sliderController.getViewDisplayParameters().done(function() {
-        sliderController.run('initResources');
-      }).fail(function(){
-        // If initial view-listing failed, it might be due to bad previous-configs.
-        // We will initialize '/resources/status' to load configs again, and then
-        // attempt one more time to load view parameters.
-        sliderController.touchViewStatus().done(function() {
-          sliderController.getViewDisplayParameters().done(function() {
-            sliderController.run('initResources');
-          });
-        });
-      });
-      application.ApplicationTypeMapper.load();
-      application.SliderAppsMapper.run('load');
-    }
-  }
-});
-
-// Load all modules in order automatically. Ember likes things to work this
-// way so everything is in the App.* namespace.
-var folderOrder = [
-    'initializers', 'mixins', 'routes', 'models', 'mappers',
-    'views', 'controllers', 'helpers',
-    'templates', 'components'
-  ];
-
-folderOrder.forEach(function(folder) {
-  window.require.list().filter(function(module) {
-    return new RegExp('^' + folder + '/').test(module);
-  }).forEach(function(module) {
-    require(module);
-  });
-});
-
-$.ajaxSetup({
-  cache : false,
-  headers : {
-    "X-Requested-By" : "X-Requested-By"
-  }
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/mappers/application_type.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/mappers/application_type.js b/contrib/views/slider/src/main/resources/ui/app/mappers/application_type.js
deleted file mode 100644
index 9fff2e3..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/mappers/application_type.js
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
- * 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.
- */
-
-/**
- * Mapper for <code>App.SliderAppType</code> and <code>App.SliderAppComponent</code> models
- * For nested models:
- * <ul>
- *   <li>
- *     Define property (P1) started with '$' in <code>map</code> (example - $components).
- *   </li>
- *   <li>
- *     Define property componentsMap (P1 without '$' and with suffix 'Map').
- *     It is used as map for nested models
- *   </li>
- *   <li>
- *     Define property componentsParentField (P1 without '$' and with suffix 'ParentField').
- *     It  is used as property in nested model to link it with parent model
- *   </li>
- * </ul>
- * @type {App.Mapper}
- */
-App.ApplicationTypeMapper = App.Mapper.create({
-
-  /**
-   * Map for parsing JSON received from server
-   * Format:
-   *  <code>
-   *    {
-   *      key1: 'path1',
-   *      key2: 'path2',
-   *      key3: 'path3'
-   *    }
-   *  </code>
-   *  Keys - names for properties in App
-   *  Values - pathes in JSON
-   * @type {object}
-   */
-  map: {
-    id: 'id',
-    configs: 'typeConfigs',
-    typeName: 'typeName',
-    typeVersion: 'typeVersion',
-    index: 'id',
-    description: 'typeDescription',
-    version: 'typeVersion',
-    /**
-     * Map array to nested models
-     * Use <code>('$components').replace('$', '') + 'Map'</code> property as map
-     * Use <code>('$components').replace('$', '') + 'Model'</code> property as model to save data
-     */
-    $components: 'typeComponents'
-  },
-
-  /**
-   * Map for <code>App.SliderAppTypeComponent</code>
-   * @type {object}
-   */
-  componentsMap: {
-    id: 'id',
-    name: 'name',
-    displayName: 'displayName',
-    defaultNumInstances: 'instanceCount',
-    defaultYARNMemory: 'yarnMemory',
-    defaultYARNCPU: 'yarnCpuCores',
-    priority: 'priority'
-  },
-
-  /**
-   * Nested model name - <code>App.SliderAppTypeComponent</code>
-   * @type {string}
-   */
-  componentsModel: 'sliderAppTypeComponent',
-
-  /**
-   * Field in <code>App.SliderAppTypeComponent</code> with parent model link
-   * @type {string}
-   */
-  componentsParentField: 'appType',
-
-  /**
-   * Load data from <code>App.urlPrefix + this.urlSuffix</code> one time
-   * @method load
-   * @return {$.ajax}
-   */
-  load: function() {
-    console.log('App.ApplicationTypeMapper loading data');
-    return App.ajax.send({
-      name: 'mapper.applicationTypes',
-      sender: this,
-      success: 'parse'
-    });
-  },
-
-  /**
-   * Parse loaded data according to <code>map</code>
-   * Load <code>App.SliderAppType</code> models
-   * @param {object} data received from server data
-   * @method parse
-   */
-  parse: function(data) {
-    var map = this.get('map'),
-      app_types = [],
-      self = this;
-    data.items.forEach(function(app_type) {
-      var model = {};
-      Ember.keys(map).forEach(function(key) {
-        // Property should be parsed as array of nested models
-        if ('$' == key[0]) {
-          var k = key.replace('$', '');
-          var components = self.parseNested(Ember.get(app_type, map[key]), k, app_type.id);
-          // save nested models and then link them with parent model
-          App.SliderApp.store.pushMany(self.get(k + 'Model'), components);
-          Ember.set(model, k, components.mapProperty('id'));
-        }
-        else {
-          Ember.set(model, key, Ember.getWithDefault(app_type, map[key], ''));
-        }
-      });
-      app_types.pushObject(model);
-    });
-    App.SliderApp.store.pushMany('sliderAppType', app_types);
-  },
-
-  /**
-   * Parse array of objects as list of nested models
-   * @param {object[]} data data to parse
-   * @param {string} k property name
-   * @param {string} parentId parent model's id
-   * @return {object[]} mapped models
-   * @method parseNested
-   */
-  parseNested: function(data, k, parentId) {
-    var models = [],
-      map = this.get(k + 'Map'),
-      parentField = this.get(k + 'ParentField');
-    data.forEach(function(item) {
-      var model = {id: item.id};
-      model[parentField] = parentId; // link to parent model
-      Ember.keys(map).forEach(function(key) {
-        Ember.set(model, key, Ember.getWithDefault(item, map[key], ''));
-      });
-      models.pushObject(model);
-    });
-    return models;
-  }
-
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/mappers/mapper.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/mappers/mapper.js b/contrib/views/slider/src/main/resources/ui/app/mappers/mapper.js
deleted file mode 100644
index 2f985eb..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/mappers/mapper.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * 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.
- */
-
-/**
- * Common mapper-object
- * Extending this object you should implement <code>load</code> and <code>parse</code> methods
- * @type {Ember.Object}
- */
-App.Mapper = Ember.Object.extend({
-
-  /**
-   * Map for parsing JSON received from server
-   * Format:
-   *  <code>
-   *    {
-   *      key1: 'path1',
-   *      key2: 'path2',
-   *      key3: 'path3'
-   *    }
-   *  </code>
-   *  Keys - names for properties in object
-   *  Values - pathes in JSON
-   * @type {object}
-   */
-  map: {},
-
-  /**
-   * Load data from <code>App.urlPrefix + this.urlSuffix</code>
-   * @method load
-   */
-  load: Ember.required(Function),
-
-  /**
-   * Parse loaded data according to <code>map</code>
-   * Set <code>App</code> properties
-   * @param {object} data received data
-   * @method parse
-   */
-  parse: Ember.required(Function)
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/mappers/slider_apps_mapper.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/mappers/slider_apps_mapper.js b/contrib/views/slider/src/main/resources/ui/app/mappers/slider_apps_mapper.js
deleted file mode 100644
index 95750ce..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/mappers/slider_apps_mapper.js
+++ /dev/null
@@ -1,292 +0,0 @@
-/**
- * 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.
- */
-
-/**
- * Mapper for <code>App.SliderApp</code> and <code>App.QuickLink</code> models
- * @type {App.Mapper}
- */
-App.SliderAppsMapper = App.Mapper.createWithMixins(App.RunPeriodically, {
-
-  /**
-   * List of app state display names
-   */
-  stateMap: {
-    'FROZEN': 'STOPPED',
-    'THAWED': 'RUNNING'
-  },
-
-  /**
-   * @type {bool}
-   */
-  isWarningPopupShown: false,
-
-  /**
-   * @type {bool}
-   */
-  isChained: true,
-  /**
-   * Load data from <code>App.urlPrefix + this.urlSuffix</code> one time
-   * @method load
-   * @return {$.ajax}
-   */
-  load: function () {
-    var self = this;
-    var dfd = $.Deferred();
-
-    App.ajax.send({
-      name: 'mapper.applicationApps',
-      sender: this,
-      success: 'parse'
-    }).fail(function(jqXHR, textStatus){
-        App.__container__.lookup('controller:application').set('hasConfigErrors', true);
-        if (!self.get('isWarningPopupShown')) {
-          var message = textStatus === "timeout" ? "timeout" : jqXHR.responseText;
-          self.set('isWarningPopupShown', true);
-          window.App.__container__.lookup('controller:SliderApps').showUnavailableAppsPopup(message);
-        }
-      }).complete(function(){
-        dfd.resolve();
-      });
-    return dfd.promise();
-  },
-
-  /**
-   * close warning popup if apps became available
-   * @return {*}
-   */
-  closeWarningPopup: function() {
-    if (Bootstrap.ModalManager.get('apps-warning-modal')) {
-      Bootstrap.ModalManager.close('apps-warning-modal');
-    }
-  },
-
-  /**
-   * Parse loaded data
-   * Load <code>App.Alert</code> model
-   * @param {object} data received from server data
-   * @method parse
-   */
-  parseAlerts: function (data) {
-    var alerts = [],
-      appId = data.id;
-
-    if (data.alerts && data.alerts.detail) {
-      data.alerts.detail.forEach(function (alert) {
-        alerts.push({
-          id: appId + alert.description,
-          title: alert.description,
-          serviceName: alert.service_name,
-          status: alert.status,
-          message: alert.output,
-          hostName: alert.host_name,
-          lastTime: alert.status_time,
-          appId: appId,
-          lastCheck: alert.last_status_time
-        });
-      });
-      alerts = alerts.sortBy('title');
-      App.SliderApp.store.pushMany('sliderAppAlert', alerts);
-    }
-    return alerts.mapProperty('id');
-  },
-
-  /**
-   * Parse loaded data
-   * Load <code>App.SliderAppComponent</code> model
-   * @param {object} data received from server data
-   * @method parse
-   */
-  parseComponents: function (data) {
-    var components = [],
-      appId = data.id;
-
-    Object.keys(data.components).forEach(function (key) {
-      var component = data.components[key],
-        activeContainers = Object.keys(component.activeContainers);
-      for (var i = 0; i < component.instanceCount; i++) {
-        components.pushObject(
-          Ember.Object.create({
-            id: appId + component.componentName + i,
-            status: activeContainers[i] ? "Running" : "Stopped",
-            host: activeContainers[i] ? component.activeContainers[activeContainers[i]].host : "",
-            containerId: activeContainers[i] ? component.activeContainers[activeContainers[i]].name : "",
-            componentName: component.componentName,
-            appId: appId
-          })
-        );
-      }
-    });
-    App.SliderApp.store.pushMany('sliderAppComponent', components);
-    return components.mapProperty('id');
-  },
-
-  /**
-   * Parse loaded data
-   * Load <code>App.SliderApp.configs</code> model
-   * @param {object} data received from server data
-   * @method parse
-   */
-  parseConfigs: function (data) {
-    var configs = {};
-    Object.keys(data.configs).forEach(function (key) {
-      configs[key] = data.configs[key];
-    });
-    return configs;
-  },
-
-  /**
-   * Parse loaded data
-   * Load <code>App.QuickLink</code> model
-   * @param {object} data received from server data
-   * @method parse
-   */
-  parseQuickLinks : function(data) {
-    var quickLinks = [],
-      appId = data.id,
-      yarnAppId = appId,
-      index = appId.lastIndexOf('_');
-    if (index > 0) {
-      yarnAppId = appId.substring(0, index + 1);
-      for (var k = (appId.length - index - 1); k < 4; k++) {
-        yarnAppId += '0';
-      }
-      yarnAppId += appId.substring(index + 1);
-    }
-    var yarnUI = "http://"+window.location.hostname+":8088",
-      viewConfigs = App.SliderApp.store.all('sliderConfig');
-    if (!Em.isNone(viewConfigs)) {
-      var viewConfig = viewConfigs.findBy('viewConfigName', 'yarn.rm.webapp.url');
-      if (!Em.isNone(viewConfig)) {
-        yarnUI = 'http://' + viewConfig.get('value');
-      }
-    }
-    quickLinks.push(
-      Ember.Object.create({
-        id: 'YARN application ' + yarnAppId,
-        label: 'YARN application',
-        url: yarnUI + '/cluster/app/application_' + yarnAppId
-      })
-    );
-
-    if(!data.urls){
-      App.SliderApp.store.pushMany('QuickLink', quickLinks);
-      return quickLinks.mapProperty('id');
-    }
-
-    Object.keys(data.urls).forEach(function (key) {
-      quickLinks.push(
-        Ember.Object.create({
-          id: appId+key,
-          label: key,
-          url: data.urls[key]
-        })
-      );
-    });
-    App.SliderApp.store.pushMany('QuickLink', quickLinks);
-    return quickLinks.mapProperty('id');
-  },
-
-  parseObject: function (o) {
-    if (Ember.typeOf(o) !== 'object') return [];
-    return Ember.keys(o).map(function (key) {
-      return {key: key, value: o[key]};
-    });
-  },
-
-  /**
-   * Concatenate <code>supportedMetrics</code> into one string
-   * @param {object} app
-   * @returns {string}
-   * @method parseMetricNames
-   */
-  parseMetricNames : function(app) {
-    if (app.supportedMetrics) {
-      return app.supportedMetrics.join(",");
-    }
-    return "";
-  },
-
-  /**
-   * Parse loaded data
-   * Load <code>App.SliderApp</code> model
-   * @param {object} data received from server data
-   * @method parse
-   */
-  parse: function (data) {
-    var apps = [],
-      self = this,
-      appsToDelete = App.SliderApp.store.all('sliderApp').mapBy('id');
-
-    App.__container__.lookup('controller:application').set('hasConfigErrors', false);
-
-    if (this.get('isWarningPopupShown')) {
-      this.closeWarningPopup();
-      this.set('isWarningPopupShown', false);
-    }
-
-    data.apps.forEach(function (app) {
-      var componentsId = app.components ? self.parseComponents(app) : [],
-        configs = app.configs ? self.parseConfigs(app) : {},
-        quickLinks = self.parseQuickLinks(app),
-        alerts = self.parseAlerts(app),
-        jmx = self.parseObject(app.jmx),
-        metricNames = self.parseMetricNames(app),
-        masterActiveTime = jmx.findProperty('key', 'MasterActiveTime'),
-        masterStartTime = jmx.findProperty('key', 'MasterStartTime');
-      if (masterActiveTime) {
-        masterActiveTime.value = new Date(Date.now() - masterActiveTime.value).getHours() + "h:" + new Date(Date.now() - masterActiveTime.value).getMinutes() + "m";
-      }
-      if (masterStartTime) {
-        masterStartTime.value = (new Date(parseInt(masterStartTime.value)).toUTCString());
-      }
-      apps.push(
-        Ember.Object.create({
-          id: app.id,
-          yarnId: app.yarnId,
-          name: app.name,
-          status: app.state,
-          displayStatus: self.stateMap[app.state] || app.state,
-          user: app.user,
-          started: app.startTime || 0,
-          ended: app.endTime  || 0,
-          appType: app.typeId,
-          diagnostics: app.diagnostics || "-",
-          description: app.description || "-",
-          components: componentsId,
-          quickLinks: quickLinks,
-          alerts: alerts,
-          configs: configs,
-          jmx: jmx,
-          runtimeProperties: app.configs,
-          supportedMetricNames: metricNames
-        })
-      );
-
-      appsToDelete = appsToDelete.without(app.id);
-    });
-    appsToDelete.forEach(function (app) {
-      var appRecord = App.SliderApp.store.getById('sliderApp', app);
-      if (appRecord) {
-        appRecord.deleteRecord();
-      }
-    });
-    apps.forEach(function(app) {
-      App.SliderApp.store.push('sliderApp', app, true);
-    });
-  }
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/mixins/ajax_error_handler.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/mixins/ajax_error_handler.js b/contrib/views/slider/src/main/resources/ui/app/mixins/ajax_error_handler.js
deleted file mode 100644
index 90614b5..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/mixins/ajax_error_handler.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * 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.
- */
-
-/**
- * Attach default error handler on error of Ajax calls
- * To correct work should be mixed with Controller or View instance
- * Example:
- *  <code>
- *    var obj = Ember.Controller.extend(App.AjaxErrorHandler, {
- *      callToServer: function() {
- *        App.ajax.send(config);
- *      }
- *    });
- *    if ajax config doesn't have error handler then the default hanlder will be established
- *  </code>
- * @type {Ember.Mixin}
- */
-App.AjaxErrorHandler = Ember.Mixin.create({
-  /**
-   * flag to indicate whether popup with ajax already opened to avoid popup overlaying
-   */
-  errorPopupShown: false,
-  /**
-   * defaultErrorHandler function is referred from App.ajax.send function
-   * @jqXHR {jqXHR Object}
-   * @url {string}
-   * @method {String} Http method
-   * @showErrorPopup {boolean}
-   */
-  defaultErrorHandler: function (jqXHR, url, method, showErrorPopup) {
-    var self = this;
-    method = method || 'GET';
-    var context = this.get('isController') ? this : (this.get('isView') && this.get('controller'));
-    try {
-      var json = $.parseJSON(jqXHR.responseText);
-      var message = json.message;
-    } catch (err) {
-    }
-
-    if (!context) {
-      console.warn('WARN: App.AjaxErrorHandler should be used only for views and controllers');
-      return;
-    }
-    if (showErrorPopup && !this.get('errorPopupShown')) {
-      Bootstrap.ModalManager.open(
-        "ajax-error-modal",
-        Em.I18n.t('common.error'),
-        Ember.View.extend({
-          classNames: ['api-error'],
-          templateName: 'common/ajax_error',
-          api: Em.I18n.t('ajax.apiInfo').format(method, url),
-          statusCode: Em.I18n.t('ajax.statusCode').format(jqXHR.status),
-          message: message,
-          showMessage: !!message,
-          willDestroyElement: function () {
-            self.set('errorPopupShown', false);
-          }
-        }),
-        [
-          Ember.Object.create({title: Em.I18n.t('ok'), dismiss: 'modal', type: 'success'})
-        ],
-        context
-      );
-      this.set('errorPopupShown', true);
-    }
-  }
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/mixins/run_periodically.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/mixins/run_periodically.js b/contrib/views/slider/src/main/resources/ui/app/mixins/run_periodically.js
deleted file mode 100644
index 68bfc3f..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/mixins/run_periodically.js
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * 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.
- */
-
-/**
- * Allow to run object method periodically and stop it
- * Example:
- *  <code>
- *    var obj = Ember.Object.createWithMixins(App.RunPeriodically, {
- *      method: Ember.K
- *    });
- *    obj.set('interval', 10000); // override default value
- *    obj.loop('method'); // run periodically
- *    obj.stop(); // stop running
- *  </code>
- * @type {Ember.Mixin}
- */
-App.RunPeriodically = Ember.Mixin.create({
-
-  /**
-   * Interval for loop
-   * @type {number}
-   */
-  interval: 5000,
-
-  /**
-   * setTimeout's return value
-   * @type {number}
-   */
-  timer: null,
-
-  /**
-   * flag to indicate whether each call should be chained to previous one
-   * @type {bool}
-   */
-  isChained: false,
-
-  /**
-   * Run <code>methodName</code> periodically with <code>interval</code>
-   * @param {string} methodName method name to run periodically
-   * @param {bool} initRun should methodName be run before setInterval call (default - true)
-   * @method run
-   */
-  run: function(methodName, initRun) {
-    initRun = Em.isNone(initRun) ? true : initRun;
-    var self = this,
-      interval = this.get('interval');
-    Ember.assert('Interval should be numeric and greated than 0', $.isNumeric(interval) && interval > 0);
-    if (initRun) {
-      this[methodName]();
-    }
-
-    if (this.get('isChained')) {
-      this.loop(self, methodName, interval);
-    } else {
-      this.set('timer',
-        setInterval(function () {
-          self[methodName]();
-        }, interval)
-      );
-    }
-  },
-
-  /**
-   * Start chain of calls of <code>methodName</code> with <code>interval</code>
-   * next call made only after previous is finished
-   * callback should return deffered object to run next loop
-   * @param {object} context
-   * @param {string} methodName method name to run periodically
-   * @param {number} interval
-   * @method loop
-   */
-  loop: function (context, methodName, interval) {
-    var self = this;
-    this.set('timer',
-      setTimeout(function () {
-        context[methodName]().done(function () {
-          self.loop(context, methodName, interval);
-        });
-      }, interval)
-    );
-  },
-
-  /**
-   * Stop running <code>timer</code>
-   * @method stop
-   */
-  stop: function() {
-    var timer = this.get('timer');
-    if (!Em.isNone(timer)) {
-      clearTimeout(timer);
-    }
-  }
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/mixins/with_panels.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/mixins/with_panels.js b/contrib/views/slider/src/main/resources/ui/app/mixins/with_panels.js
deleted file mode 100644
index 972834f..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/mixins/with_panels.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * 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.
- */
-
-/**
- * Mixin for views that use Bootstrap.BsPanelComponent component
- * Add caret for collapsed/expanded panels at the left of panel's title
- * Usage:
- * <code>
- *  App.SomeView = Em.View.extend(App.WithPanels, {
- *    didInsertElement: function() {
- *      this.addCarets();
- *    }
- *  });
- * </code>
- * @type {Em.Mixin}
- */
-App.WithPanels = Ember.Mixin.create({
-
-  /**
-   * Add caret before panel's title and add handlers for expand/collapse events
-   * Set caret-down when panel is expanded
-   * Set caret-right when panel is collapsed
-   * @method addArrows
-   */
-  addCarets: function() {
-    var panel = $('.panel');
-    panel.find('.panel-heading').prepend('<span class="pull-left icon icon-caret-right"></span>');
-    panel.find('.panel-collapse.collapse.in').each(function() {
-      $(this).parent().find('.icon.icon-caret-right:first-child').addClass('icon-caret-down').removeClass('icon-caret-right');
-    });
-    panel.on('hidden.bs.collapse', function (e) {
-      $(e.delegateTarget).find('span.icon').addClass('icon-caret-right').removeClass('icon-caret-down');
-    }).on('shown.bs.collapse', function (e) {
-        $(e.delegateTarget).find('span.icon').addClass('icon-caret-down').removeClass('icon-caret-right');
-      });
-  }
-
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/models/.gitkeep
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/models/.gitkeep b/contrib/views/slider/src/main/resources/ui/app/models/.gitkeep
deleted file mode 100755
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/models/config_property.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/models/config_property.js b/contrib/views/slider/src/main/resources/ui/app/models/config_property.js
deleted file mode 100644
index 625dfec..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/models/config_property.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * 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.
- */
-
-
-/**
- * Config property
- * @type {object}
- */
-App.ConfigProperty = Em.Object.extend({
-  name: null,
-  value: null,
-  label: "",
-  viewType: null,
-  view: function () {
-    switch (this.get('viewType')) {
-      case 'checkbox':
-        return Em.Checkbox;
-      case 'select':
-        return Em.Select;
-      default:
-        return Em.TextField;
-    }
-  }.property('viewType'),
-  className: function () {
-    return "value-for-" + this.get('label').replace(/\./g, "-");
-  }.property('viewType'),
-  readOnly: false,
-  //used for config with "select" view
-  options: [],
-  //indicate whether it single config or set of configs
-  isSet: false
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/models/host.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/models/host.js b/contrib/views/slider/src/main/resources/ui/app/models/host.js
deleted file mode 100644
index 19269c2..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/models/host.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * 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.
- */
-
-App.Host = DS.Model.extend({
-
-  /**
-   * @type {string}
-   */
-  hostName: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  publicHostName: DS.attr('string')
-
-});
-
-App.Host.FIXTURES = [];
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/models/slider_app.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/models/slider_app.js b/contrib/views/slider/src/main/resources/ui/app/models/slider_app.js
deleted file mode 100644
index de31dfc..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/models/slider_app.js
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
- * 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.
- */
-
-App.SliderApp = DS.Model.extend({
-
-  /**
-   * @type {string}
-   */
-  yarnId: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  name: DS.attr('string'),
-
-  /**
-   * @type {status}
-   */
-  status: DS.attr('string'),
-
-  /**
-   * Status before performed action
-   * @type {string}
-   */
-  statusBeforeAction: DS.attr('string'),
-
-  /**
-   * @type {displayStatus}
-   */
-  displayStatus: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  user: DS.attr('string'),
-
-  /**
-   * @type {number}
-   */
-  started: DS.attr('number'),
-
-  /**
-   * @type {boolean}
-   */
-  isActionPerformed: DS.attr('boolean'),
-
-  /**
-   * @type {boolean}
-   */
-  isActionFinished: function() {
-    return this.get('status') != this.get('statusBeforeAction');
-  }.property('statusBeforeAction', 'status'),
-
-  /**
-   * @type {String}
-   */
-
-  startedToLocalTime: function () {
-    var started = this.get('started');
-    return started ? moment(started).format('ddd, DD MMM YYYY, HH:mm:ss Z [GMT]') : '-';
-  }.property('started'),
-
-  /**
-   * @type {number}
-   */
-  ended: DS.attr('number'),
-
-  /**
-   * @type {String}
-   */
-
-  endedToLocalTime: function () {
-    var ended = this.get('ended');
-    return ended ? moment(ended).format('ddd, DD MMM YYYY, HH:mm:ss Z [GMT]') : '-';
-  }.property('ended'),
-
-  /**
-   * @type {App.SliderAppType}
-   */
-  appType: DS.belongsTo('sliderAppType'),
-
-  /**
-   * @type {string}
-   */
-
-  description: DS.attr('string'),
-  /**
-   * @type {string}
-   */
-  diagnostics: DS.attr('string'),
-
-  /**
-   * @type {App.SliderAppComponent[]}
-   */
-  components: DS.hasMany('sliderAppComponent', {async: true}),
-
-  /**
-   * @type {App.QuickLink[]}
-   */
-  quickLinks: DS.hasMany('quickLink', {async: true}),
-
-  /**
-   * @type {App.SliderAppAlert[]}
-   */
-  alerts: DS.hasMany('sliderAppAlert', {async: true}),
-
-  /**
-   * @type {App.TypedProperty[]}
-   */
-  runtimeProperties: DS.hasMany('typedProperty', {async: true}),
-
-  /**
-   * @type {object}
-   * Format:
-   * {
-   *   site-name1: {
-   *      config1: value1,
-   *      config2: value2
-   *      ...
-   *   },
-   *   site-name2: {
-   *      config3: value5,
-   *      config4: value6
-   *      ...
-   *   },
-   *   ...
-   * }
-   */
-  configs: DS.attr('object'),
-
-  jmx: DS.attr('object'),
-
-  supportedMetricNames: DS.attr('string'),
-
-  /**
-   * Config categories, that should be hidden on app page
-   * @type {string[]}
-   */
-  hiddenCategories: [],
-
-  /**
-   * @type {boolean}
-   */
-  doNotShowComponentsAndAlerts: function () {
-    return this.get('status') == "FROZEN" || this.get('status') == "FAILED";
-  }.property('status', 'components', 'alerts'),
-
-  /**
-   * Display metrics only for running apps
-   * Also don't display if metrics don't exist
-   * @type {boolean}
-   */
-  showMetrics: function () {
-    if (!this.get('supportedMetricNames.length')) return false;
-    if (App.get('metricsHost') != null) {
-      return true;
-    }
-    return App.SliderApp.Status.running === this.get('status');
-  }.property('status', 'configs', 'supportedMetricNames'),
-
-  /**
-   * Map object to array
-   * @param {object} o
-   * @returns {{key: string, value: *}[]}
-   */
-  mapObject: function (o) {
-    if (Ember.typeOf(o) !== 'object') return [];
-    return Ember.keys(o).map(function (key) {
-      return {
-        key: key,
-        value: o[key],
-        isMultiline: o[key].indexOf("\n") !== -1 || o[key].length > 100
-      };
-    });
-  }
-
-});
-
-App.SliderApp.FIXTURES = [];
-
-App.SliderApp.Status = {
-  accepted: "ACCEPTED",
-  failed: "FAILED",
-  finished: "FINISHED",
-  killed: "KILLED",
-  new: "NEW",
-  new_saving: "NEW_SAVING",
-  running: "RUNNING",
-  submitted: "SUBMITTED",
-  frozen: "FROZEN",
-  stopped: "STOPPED"
-};

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/models/slider_app_alert.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/models/slider_app_alert.js b/contrib/views/slider/src/main/resources/ui/app/models/slider_app_alert.js
deleted file mode 100644
index f62c3ab..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/models/slider_app_alert.js
+++ /dev/null
@@ -1,149 +0,0 @@
-/**
- * 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.
- */
-
-App.SliderAppAlert = DS.Model.extend({
-  /**
-   * @type {string}
-   */
-  title: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  serviceName: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  status: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  message: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  hostName: DS.attr('string'),
-
-  /**
-   * @type {number}
-   */
-  lastTime: DS.attr('number'),
-
-  /**
-   * @type {number}
-   */
-  lastCheck: DS.attr('number'),
-
-  /**
-   * @type {App.SliderApp}
-   */
-  appId: DS.belongsTo('sliderApp'),
-
-  /**
-   * @type {string}
-   */
-  iconClass: function () {
-    var statusMap = Em.Object.create({
-      'OK': 'icon-ok',
-      'WARNING': 'icon-warning-sign',
-      'CRITICAL': 'icon-remove',
-      'PASSIVE': 'icon-medkit'
-    });
-    return statusMap.getWithDefault(this.get('status'), 'icon-question-sign');
-  }.property('status'),
-
-  /**
-   * @type {object}
-   */
-  date: function () {
-    return DS.attr.transforms.date.from(this.get('lastTime'));
-  }.property('lastTime'),
-
-  /**
-   * Provides how long ago this alert happened.
-   *
-   * @type {String}
-   */
-  timeSinceAlert: function () {
-    var d = this.get('date');
-    var timeFormat;
-    var statusMap = Em.Object.create({
-      'OK': 'OK',
-      'WARNING': 'WARN',
-      'CRITICAL': 'CRIT',
-      'PASSIVE': 'MAINT'
-    });
-    var messageKey = statusMap.getWithDefault(this.get('status'), 'UNKNOWN');
-
-    if (d) {
-      timeFormat = Em.I18n.t('sliderApp.alerts.' + messageKey + '.timePrefix');
-      var prevSuffix = $.timeago.settings.strings.suffixAgo;
-      $.timeago.settings.strings.suffixAgo = '';
-      var since = timeFormat.format($.timeago(this.makeTimeAtleastMinuteAgo(d)));
-      $.timeago.settings.strings.suffixAgo = prevSuffix;
-      return since;
-    } else if (d == 0) {
-      timeFormat = Em.I18n.t('sliderApp.alerts.' + messageKey + '.timePrefixShort');
-      return timeFormat;
-    } else {
-      return "";
-    }
-  }.property('date', 'status'),
-
-  /**
-   *
-   * @param d
-   * @return {object}
-   */
-  makeTimeAtleastMinuteAgo: function (d) {
-    var diff = (new Date).getTime() - d.getTime();
-    if (diff < 60000) {
-      diff = 60000 - diff;
-      return new Date(d.getTime() - diff);
-    }
-    return d;
-  },
-
-  /**
-   * Provides more details about when this alert happened.
-   *
-   * @type {String}
-   */
-  timeSinceAlertDetails: function () {
-    var details = "";
-    var date = this.get('date');
-    if (date) {
-      var dateString = date.toDateString();
-      dateString = dateString.substr(dateString.indexOf(" ") + 1);
-      dateString = Em.I18n.t('sliderApp.alerts.occurredOn').format(dateString, date.toLocaleTimeString());
-      details += dateString;
-    }
-    var lastCheck = this.get('lastCheck');
-    if (lastCheck) {
-      lastCheck = new Date(lastCheck * 1000);
-      details = details ? details + Em.I18n.t('sliderApp.alerts.brLastCheck').format($.timeago(lastCheck)) : Em.I18n.t('sliderApp.alerts.lastCheck').format($.timeago(lastCheck));
-    }
-    return details;
-  }.property('lastCheck', 'date')
-
-});
-
-App.SliderAppAlert.FIXTURES = [];
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/models/slider_app_component.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/models/slider_app_component.js b/contrib/views/slider/src/main/resources/ui/app/models/slider_app_component.js
deleted file mode 100644
index 6a577c2..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/models/slider_app_component.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * 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.
- */
-
-App.SliderAppComponent = DS.Model.extend({
-
-  /**
-   * @type {string}
-   */
-  status: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  host: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  componentName: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  containerId: DS.attr('string'),
-
-  /**
-   * @type {App.SliderApp}
-   */
-  appId: DS.belongsTo('sliderApp'),
-
-  /**
-   * Is component running (used in the templates)
-   * @type {bool}
-   */
-  isRunning: function() {
-    return this.get('status') === 'Running';
-  }.property('status'),
-
-  url: function() {
-    var host = this.get('host');
-    var containerId = this.get('containerId');
-    if (host != null && containerId != null) {
-      return "http://" + this.get('host') + ":8042/node/container/" + this.get('containerId');
-    }
-    return null;
-  }.property('host', 'containerId')
-
-});
-
-App.SliderAppComponent.FIXTURES = [];
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/models/slider_app_type.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/models/slider_app_type.js b/contrib/views/slider/src/main/resources/ui/app/models/slider_app_type.js
deleted file mode 100644
index cb376bc..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/models/slider_app_type.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * 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.
- */
-
-App.SliderAppType = DS.Model.extend({
-
-  /**
-   * @type {string}
-   */
-  index: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  typeName: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  typeVersion: DS.attr('string'),
-
-  /**
-   * @type {App.SliderAppTypeComponent[]}
-   */
-  components: DS.hasMany('sliderAppTypeComponent'),
-
-  /**
-   * @type {string}
-   */
-  description: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  version: DS.attr('string'),
-
-  /**
-   * @type {object}
-   */
-  configs: DS.attr('object'),
-  
-  displayName : function() {
-    var typeName = this.get('typeName');
-    var typeVersion = this.get('typeVersion');
-    return (typeName == null ? '' : typeName) + " ("
-        + (typeVersion == null ? '' : typeVersion) + ")"
-  }.property('typeName', 'typeVersion')
-});
-
-App.SliderAppType.FIXTURES = [];
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/models/slider_app_type_component.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/models/slider_app_type_component.js b/contrib/views/slider/src/main/resources/ui/app/models/slider_app_type_component.js
deleted file mode 100644
index 1576b04..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/models/slider_app_type_component.js
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * 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.
- */
-
-App.SliderAppTypeComponent = DS.Model.extend({
-
-  /**
-   * @type {string}
-   */
-  index: DS.attr('string'), // (app-type + name)
-
-  /**
-   * @type {string}
-   */
-  name: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  displayName: DS.attr('string'),
-
-  /**
-   * @type {number}
-   */
-  defaultNumInstances: DS.attr('number'),
-
-  /**
-   * @type {number}
-   */
-  defaultYARNMemory: DS.attr('number'),
-
-  /**
-   * @type {number}
-   */
-  defaultYARNCPU: DS.attr('number'),
-
-  /**
-   * @type {App.SliderAppType}
-   */
-  appType: DS.belongsTo('sliderAppType'),
-
-  /**
-   * @type {number}
-   */
-  priority: DS.attr('string')
-
-});
-
-App.SliderAppTypeComponent.FIXTURES = [];
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/models/slider_config.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/models/slider_config.js b/contrib/views/slider/src/main/resources/ui/app/models/slider_config.js
deleted file mode 100644
index b1b2129..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/models/slider_config.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * 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.
- */
-
-/**
- * Slider config-property (see Ambari-Admin view-settings)
- * Also see <code>view.xml</code>
- * @type {DS.Model}
- */
-App.SliderConfig = DS.Model.extend({
-
-  /**
-   * Name in the Ambari-Admin
-   * @type {string}
-   */
-  viewConfigName: DS.attr('string'),
-
-  /**
-   * Shown name
-   * @type {string}
-   */
-  displayName: DS.attr('string'),
-
-  /**
-   * @type {null|string}
-   */
-  value: null
-
-});
-
-App.SliderConfig.FIXTURES = [];

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/models/slider_quick_link.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/models/slider_quick_link.js b/contrib/views/slider/src/main/resources/ui/app/models/slider_quick_link.js
deleted file mode 100644
index d526ee7..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/models/slider_quick_link.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * 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.
- */
-
-App.QuickLink = DS.Model.extend({
-
-  /**
-   * @type {string}
-   */
-  label: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  url: DS.attr('string')
-
-});
-
-App.QuickLink.FIXTURES = [];
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/models/typed_property.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/models/typed_property.js b/contrib/views/slider/src/main/resources/ui/app/models/typed_property.js
deleted file mode 100644
index 3c7e919..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/models/typed_property.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * 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.
- */
-
-App.TypedProperty = DS.Model.extend({
-
-  /**
-   * @type {string}
-   */
-  key: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  value: DS.attr('string'),
-
-  /**
-   * @type {string}
-   */
-  type: DS.attr('string') // (one of 'date', 'host')
-
-});
-
-App.TypedProperty.FIXTURES = [];
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/routes/create_app_wizard.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/routes/create_app_wizard.js b/contrib/views/slider/src/main/resources/ui/app/routes/create_app_wizard.js
deleted file mode 100644
index de1f52d..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/routes/create_app_wizard.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * 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.
- */
-App.CreateAppWizardRoute = Ember.Route.extend({
-
-  controller: null,
-
-  setupController: function (controller) {
-    this.set('controller', controller);
-  },
-
-  actions: {
-    nextStep: function () {
-      this.get('controller').nextStep();
-    },
-
-    prevStep: function () {
-      this.get('controller').prevStep();
-    }
-  }
-});
-
-App.CreateAppWizardStep1Route = Em.Route.extend({
-
-  setupController: function(controller, model) {
-    controller.set('model', model);
-    controller.initializeNewApp();
-    controller.loadAvailableTypes();
-  }
-
-});
-
-App.CreateAppWizardStep2Route = Em.Route.extend({
-
-  setupController: function(controller, model) {
-    controller.set('model', model);
-    controller.initializeNewApp();
-  }
-
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/ec8deeba/contrib/views/slider/src/main/resources/ui/app/routes/main.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/routes/main.js b/contrib/views/slider/src/main/resources/ui/app/routes/main.js
deleted file mode 100644
index fc83860..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/routes/main.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * 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.
- */
-
-App.ApplicationRoute = Ember.Route.extend({
-  renderTemplate: function() {
-    this.render();
-    var controller = this.controllerFor('tooltip-box');
-    this.render("bs-tooltip-box", {
-      outlet: "bs-tooltip-box",
-      controller: controller,
-      into: "application"
-    });
-  }
-});
-
-App.IndexRoute = Ember.Route.extend({
-
-  model: function () {
-    return this.modelFor('sliderApps');
-  },
-
-  redirect: function () {
-    this.transitionTo('slider_apps');
-  }
-
-});
-
-App.SliderAppsRoute = Ember.Route.extend({
-
-  model: function () {
-    return this.store.all('sliderApp');
-  },
-
-
-  setupController: function(controller, model) {
-    controller.set('model', model);
-
-    // Load sliderConfigs to storage
-    App.SliderApp.store.pushMany('sliderConfig', Em.A([
-      Em.Object.create({id: 1, required: false, viewConfigName: 'site.global.metric_collector_host', displayName: 'metricsServer'}),
-      Em.Object.create({id: 2, required: false, viewConfigName: 'site.global.metric_collector_port', displayName: 'metricsPort'}),
-      Em.Object.create({id: 3, required: false, viewConfigName: 'site.global.metric_collector_lib', displayName: 'metricsLib'}),
-      Em.Object.create({id: 4, required: false, viewConfigName: 'yarn.rm.webapp.url', displayName: 'yarnRmWebappUrl'})
-    ]));
-  },
-
-  actions: {
-    createApp: function () {
-      this.transitionTo('createAppWizard');
-    }
-  }
-});
-
-App.SliderAppRoute = Ember.Route.extend({
-
-  model: function(params) {
-    return this.store.all('sliderApp', params.slider_app_id);
-  }
-
-});
\ No newline at end of file