You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by on...@apache.org on 2014/05/22 16:43:06 UTC

[4/4] git commit: AMBARI-5860. Populate the configs tab of Slider App details page. (onechiporenko)

AMBARI-5860. Populate the configs tab of Slider App details page. (onechiporenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/79eb5f5b
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/79eb5f5b
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/79eb5f5b

Branch: refs/heads/trunk
Commit: 79eb5f5bd49e2122c3f608b82a3b991762ebac91
Parents: 60cbd69
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Thu May 22 17:42:45 2014 +0300
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Thu May 22 17:42:45 2014 +0300

----------------------------------------------------------------------
 .../src/main/resources/ui/app/config/app.js     |     2 +-
 .../src/main/resources/ui/app/config/router.js  |     5 +-
 .../main/resources/ui/app/controllers/slider.js |    20 -
 .../ui/app/controllers/slider_app_controller.js |    45 +
 .../main/resources/ui/app/models/slider_app.js  |    99 +-
 .../resources/ui/app/styles/application.less    |   108 +-
 .../ui/app/templates/createAppWizard.hbs        |    10 +-
 .../ui/app/templates/createAppWizard/step1.hbs  |     4 +-
 .../resources/ui/app/templates/slider_app.hbs   |    44 +-
 .../ui/app/templates/slider_app/configs.hbs     |    80 +
 .../ui/app/templates/slider_app/summary.hbs     |    20 +
 .../resources/ui/app/templates/slider_apps.hbs  |     7 +-
 .../src/main/resources/ui/app/translations.js   |    16 +-
 .../slider/src/main/resources/ui/config.js      |     6 +
 .../ui/vendor/scripts/common/bootstrap.js       |  2820 +++--
 .../ui/vendor/scripts/common/bs-basic.min.js    |     1 +
 .../ui/vendor/scripts/common/bs-core.min.js     |     1 +
 .../ui/vendor/scripts/common/bs-nav.min.js      |     1 +
 .../resources/ui/vendor/styles/bootstrap.css    | 10346 +++++++++--------
 19 files changed, 6961 insertions(+), 6674 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/contrib/views/slider/src/main/resources/ui/app/config/app.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/config/app.js b/contrib/views/slider/src/main/resources/ui/app/config/app.js
index 9e19d56..6ec8eca 100755
--- a/contrib/views/slider/src/main/resources/ui/app/config/app.js
+++ b/contrib/views/slider/src/main/resources/ui/app/config/app.js
@@ -23,4 +23,4 @@ var config = {
   LOG_TRANSITIONS_INTERNAL: false
 };
 
-module.exports = Ember.Application.create(config);
+module.exports = Ember.Application.createWithMixins(Bootstrap, config);

http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/contrib/views/slider/src/main/resources/ui/app/config/router.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/config/router.js b/contrib/views/slider/src/main/resources/ui/app/config/router.js
index 41d1b37..2a1825a 100755
--- a/contrib/views/slider/src/main/resources/ui/app/config/router.js
+++ b/contrib/views/slider/src/main/resources/ui/app/config/router.js
@@ -27,6 +27,9 @@ module.exports = App.Router.map(function () {
       this.route('step4');
     });
   });
-  this.resource('slider_app', { path: 'apps/:slider_app_id' });
+  this.resource('slider_app', { path: 'apps/:slider_app_id' }, function() {
+    this.route('configs');
+    this.route('summary');
+  });
 });
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/contrib/views/slider/src/main/resources/ui/app/controllers/slider.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/controllers/slider.js b/contrib/views/slider/src/main/resources/ui/app/controllers/slider.js
deleted file mode 100644
index b9f3698..0000000
--- a/contrib/views/slider/src/main/resources/ui/app/controllers/slider.js
+++ /dev/null
@@ -1,20 +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.SliderAppsController = Ember.ArrayController.extend({
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/contrib/views/slider/src/main/resources/ui/app/controllers/slider_app_controller.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/controllers/slider_app_controller.js b/contrib/views/slider/src/main/resources/ui/app/controllers/slider_app_controller.js
index c24c45f..5cc63f6 100644
--- a/contrib/views/slider/src/main/resources/ui/app/controllers/slider_app_controller.js
+++ b/contrib/views/slider/src/main/resources/ui/app/controllers/slider_app_controller.js
@@ -17,6 +17,51 @@
  */
 
 App.SliderAppController = Ember.ObjectController.extend({
+
+  /**
+   * List of Slider App tabs
+   * @type {{title: string, linkTo: string}[]}
+   */
+  sliderAppTabs: Ember.A([
+    Ember.Object.create({title: Ember.I18n.t('common.summary'), linkTo: 'slider_app.summary'}),
+    Ember.Object.create({title: Ember.I18n.t('common.configs'), linkTo: 'slider_app.configs'})
+  ]),
+
+  /**
+   * List of available for model actions
+   * Based on <code>model.status</code>
+   * @type {Ember.Object[]}
+   */
+  availableActions: function() {
+    var actions = Em.A([]),
+      status = this.get('model.status');
+    if ('RUNNING' === status) {
+      actions.pushObject({
+        title: 'Freeze',
+        confirm: true
+      });
+    }
+    if ('FINISHED' !== status) {
+      actions.push({
+        title: 'Flex',
+        confirm: true
+      });
+    }
+    if ('FROZEN' === status) {
+      actions.pushObjects([
+        {
+          title: 'Thaw',
+          confirm: false
+        },
+        {
+          title: 'Destroy',
+          confirm: true
+        }
+      ]);
+    }
+    return actions;
+  }.property('model.status'),
+
   quickLinks: function() {
     return this.get('content').get('quickLinks');
   }.property('content.quickLinks')

http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/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
index 9afd4d2..0f3fef5 100644
--- 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
@@ -76,7 +76,73 @@ App.SliderApp = DS.Model.extend({
   /**
    * @type {App.TypedProperty[]}
    */
-  runtimeProperties: DS.hasMany('typedProperty', {async:true})
+  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'),
+
+  /**
+   * Global configs
+   * @type {{key: string, value: *}[]}
+   */
+  globals: function() {
+    var c = this.get('configs.global');
+    return this.mapObject(c);
+  }.property('configs.global'),
+
+  /**
+   * HBase-Site configs
+   * @type {{key: string, value: *}[]}
+   */
+  hbaseSite: function() {
+    var c = this.get('configs.hbase-site');
+    return this.mapObject(c);
+  }.property('configs.hbase-site'),
+
+  /**
+   * Configs which are not in global or hbase-site
+   * @type {{key: string, value: *}[]}
+   */
+  otherConfigs: function() {
+    var c = this.get('configs'),
+      ret = [],
+      self = this;
+    if (Ember.typeOf(c) !== 'object') return [];
+    Ember.keys(c).forEach(function(key) {
+      if (['hbase-site', 'global'].contains(key)) return;
+      ret = ret.concat(self.mapObject(c[key]));
+    });
+    return ret;
+  }.property('configs'),
+
+  /**
+   * 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]};
+    });
+  }
+
 });
 
 App.SliderApp.FIXTURES = [
@@ -93,14 +159,41 @@ App.SliderApp.FIXTURES = [
     diagnostics: 'd1',
     components: [3, 4, 5],
     quickLinks: [1, 2, 6],
-    runtimeProperties: [1, 2, 3]
+    runtimeProperties: [1, 2, 3],
+    configs: {
+      global: {
+        config1: 'value1',
+        config2: 'value2',
+        config3: 'value3',
+        config4: 'value4'
+      },
+      'hbase-site': {
+        config1: 'value1',
+        config2: 'value2',
+        config3: 'value3',
+        config4: 'value4',
+        config5: 'value5'
+      },
+      another: {
+        config6: 'value6',
+        config7: 'value7',
+        config8: 'value8',
+        config9: 'value9'
+      },
+      another2: {
+        config10: 'value10',
+        config11: 'value11',
+        config12: 'value12',
+        config13: 'value13'
+      }
+    }
   },
   {
     id: 2,
     index: 'indx2',
     yarnId: 'y2',
     name: 'name2',
-    status: 'Running',
+    status: 'RUNNING',
     user: 'u2',
     started: 1400132912,
     ended: 1400152912,

http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/contrib/views/slider/src/main/resources/ui/app/styles/application.less
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/styles/application.less b/contrib/views/slider/src/main/resources/ui/app/styles/application.less
index 63f233d..ba7f38c 100644
--- a/contrib/views/slider/src/main/resources/ui/app/styles/application.less
+++ b/contrib/views/slider/src/main/resources/ui/app/styles/application.less
@@ -16,6 +16,10 @@
  * limitations under the License.
  */
 
+html {
+  overflow-y: scroll;
+}
+
 a {
   cursor: pointer;
 }
@@ -23,6 +27,7 @@ a {
 #slider-apps-table  {
   .create-app {
     margin-top:27px;
+    margin-bottom: 20px;
   }
 #slider-table {
     margin-top: 10px;
@@ -44,6 +49,7 @@ a {
       font-size: 0.9em;
       th {
         padding: 4px;
+        border-bottom: none !important;
       }
       .active-sort {
         color: #555555;
@@ -70,7 +76,8 @@ a {
       }
       input {
         font-size: 12px;
-        height: 14px;
+        height: 24px;
+        margin-bottom: 10px;
       }
       .filter-btn {
         color: #999999;
@@ -344,9 +351,6 @@ a {
     margin-top: 30px;
   }
   .quick-links-wrapper {
-    margin-top: -53px;
-    position: relative;
-    left: 278px;
     .nav-pills.move {
       float: right;
       width:135px;
@@ -378,4 +382,98 @@ a {
       }
     }
   }
-}
\ No newline at end of file
+}
+
+.slider-modal {
+  position: fixed;
+  top: 50%;
+  left: 50%;
+  z-index: 1050;
+  width: 560px;
+  margin: -250px 0 0 -280px;
+  overflow: auto;
+  background-color: #ffffff;
+  border: 1px solid #999;
+  border: 1px solid rgba(0, 0, 0, 0.3);
+  *border: 1px solid #999;
+  -webkit-border-radius: 6px;
+  -moz-border-radius: 6px;
+  border-radius: 6px;
+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  -webkit-background-clip: padding-box;
+  -moz-background-clip: padding-box;
+  background-clip: padding-box;
+}
+
+.slider-modal.fade {
+  top: -25%;
+  -webkit-transition: opacity 0.3s linear, top 0.3s ease-out;
+  -moz-transition: opacity 0.3s linear, top 0.3s ease-out;
+  -o-transition: opacity 0.3s linear, top 0.3s ease-out;
+  transition: opacity 0.3s linear, top 0.3s ease-out;
+}
+
+.slider-modal.fade.in {
+  top: 50%;
+}
+
+.slider-modal-header {
+  padding: 9px 15px;
+  border-bottom: 1px solid #eee;
+}
+
+.slider-modal-header .close {
+  margin-top: 2px;
+}
+
+.slider-modal-header h3 {
+  margin: 0;
+  line-height: 30px;
+}
+
+.slider-modal-body {
+  max-height: 400px;
+  padding: 15px;
+  overflow-y: auto;
+}
+
+.slider-modal-form {
+  margin-bottom: 0;
+}
+
+.slider-modal-footer {
+  padding: 14px 15px 15px;
+  margin-bottom: 0;
+  text-align: right;
+  background-color: #f5f5f5;
+  border-top: 1px solid #ddd;
+  -webkit-border-radius: 0 0 6px 6px;
+  -moz-border-radius: 0 0 6px 6px;
+  border-radius: 0 0 6px 6px;
+  *zoom: 1;
+  -webkit-box-shadow: inset 0 1px 0 #ffffff;
+  -moz-box-shadow: inset 0 1px 0 #ffffff;
+  box-shadow: inset 0 1px 0 #ffffff;
+}
+
+.slider-modal-footer:before,
+.slider-modal-footer:after {
+  display: table;
+  line-height: 0;
+  content: "";
+}
+
+.modal-footer:after {
+  clear: both;
+}
+
+.slider-modal-footer .btn + .btn {
+  margin-bottom: 0;
+  margin-left: 5px;
+}
+
+.slider-modal-footer .btn-group .btn + .btn {
+  margin-left: -1px;
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard.hbs b/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard.hbs
index 8714a5f..92de14d 100644
--- a/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard.hbs
+++ b/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard.hbs
@@ -15,17 +15,17 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 }}
-<div class="modal" id="createAppWizard">
-  <div class="modal-header">
+<div class="slider-modal" id="createAppWizard">
+  <div class="slider-modal-header">
     <button type="button" class="close" {{action hide target="view"}}>&times;</button>
     <h3 id="myModalLabel">{{t wizard.name}}</h3>
   </div>
-  <div class="modal-body">
+  <div class="slider-modal-body">
     <div class="wizard">
       <div class="container">
         <div class="container-fluid">
           <div class="row-fluid">
-            <div class="span3">
+            <div class="col-md-3">
               <div class="well">
                 <ul class="nav nav-pills nav-stacked">
                   <li {{bind-attr class="view.isStep1:active view.isStep1Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep 1 target="controller"}}>{{t wizard.step1.name}}</a></li>
@@ -35,7 +35,7 @@
                 </ul>
               </div>
             </div>
-            <div class="wizard-content well span9">
+            <div class="wizard-content well col-md-9">
               {{outlet}}
             </div>
           </div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard/step1.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard/step1.hbs b/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard/step1.hbs
index 6acf985..98f0e42 100644
--- a/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard/step1.hbs
+++ b/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard/step1.hbs
@@ -17,10 +17,10 @@
 }}
 <h4>{{t wizard.step1.header}}</h4>
 <div class="row-fluid">
-  <div class="span6">
+  <div class="col-md-6">
     {{view view.availableTypesSelect contentBinding="controller.availableTypes" optionLabelPath="content.displayName" multiple="true" class="type-select"}}
   </div>
-  <div class="span6">
+  <div class="col-md-6">
     <div {{bind-attr class=":control-group controller.isNameError:error"}}>
       <label>{{t common.name}}: {{input id="app-name-input" valueBinding="controller.newAppName"}}</label>
     </div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/contrib/views/slider/src/main/resources/ui/app/templates/slider_app.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/templates/slider_app.hbs b/contrib/views/slider/src/main/resources/ui/app/templates/slider_app.hbs
index b8af9b5..27878cd 100644
--- a/contrib/views/slider/src/main/resources/ui/app/templates/slider_app.hbs
+++ b/contrib/views/slider/src/main/resources/ui/app/templates/slider_app.hbs
@@ -23,19 +23,39 @@
       &rarr;
     {{model.name}}
   </div>
-  <div class="wrap-tabs">
-    <ul class="nav nav-tabs"></ul>
-    <div class="span3 quick-links-wrapper">
-      <ul class="nav nav-pills move">
-        <li class="dropdown">
-          <a class="dropdown-toggle" data-toggle="dropdown" href="#">{{t common.quickLinks}}<b class="caret"></b></a>
-          <ul class="dropdown-menu">
-            {{#each quickLink in controller.quickLinks}}
-                <li><a {{bind-attr href="quickLink.url"}} target="_blank">{{quickLink.label}}</a></li>
-            {{/each}}
-          </ul>
-        </li>
+  <p></p>
+  <div class="col-md-5 pull-right">
+    <div class="btn-group display-inline-block pull-right">
+      <a class="btn dropdown-toggle btn-primary " data-toggle="dropdown" href="#">
+        {{t common.actions}}
+        <span class="caret"></span>
+      </a>
+      <ul class="dropdown-menu">
+        {{#each option in controller.availableActions}}
+          <li>
+            <a {{action 'openModal' option}}>{{option.title}}</a>
+          </li>
+        {{/each}}
       </ul>
     </div>
   </div>
+
+  <div class="col-md-3 quick-links-wrapper pull-right">
+    <ul class="nav nav-pills move">
+      <li class="dropdown">
+        <a class="dropdown-toggle" data-toggle="dropdown" href="#">{{t common.quickLinks}}<b class="caret"></b></a>
+        <ul class="dropdown-menu">
+          {{#each quickLink in controller.quickLinks}}
+            <li><a {{bind-attr href="quickLink.url"}} target="_blank">{{quickLink.label}}</a></li>
+          {{/each}}
+        </ul>
+      </li>
+    </ul>
+  </div>
+
+  {{bs-tabs contentBinding="sliderAppTabs" default="summary"}}
+  <div style="margin-top: 20px;">
+    {{outlet}}
+  </div>
+
 </div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/contrib/views/slider/src/main/resources/ui/app/templates/slider_app/configs.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/templates/slider_app/configs.hbs b/contrib/views/slider/src/main/resources/ui/app/templates/slider_app/configs.hbs
new file mode 100644
index 0000000..5e07e57
--- /dev/null
+++ b/contrib/views/slider/src/main/resources/ui/app/templates/slider_app/configs.hbs
@@ -0,0 +1,80 @@
+{{!
+* 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.
+}}
+
+{{#if model.otherConfigs}}
+  {{#bs-panel heading="General" collapsible=true}}
+    <table class="table table-striped table-bordered table-condensed">
+      <thead>
+      <tr>
+        <th class="col-sm-4">{{t common.name}}</th>
+        <th>{{t common.value}}</th>
+      </tr>
+      </thead>
+      <tbody>
+        {{#each model.otherConfigs}}
+        <tr>
+          <td>{{key}}</td>
+          <td>{{value}}</td>
+        </tr>
+        {{/each}}
+      </tbody>
+    </table>
+  {{/bs-panel}}
+{{/if}}
+
+{{#if model.globals}}
+  {{#bs-panel heading="Global" collapsible=true}}
+    <table class="table table-striped table-bordered table-condensed">
+      <thead>
+        <tr>
+          <th class="col-sm-4">{{t common.name}}</th>
+          <th>{{t common.value}}</th>
+        </tr>
+      </thead>
+      <tbody>
+        {{#each model.globals}}
+          <tr>
+            <td>{{key}}</td>
+            <td>{{value}}</td>
+          </tr>
+        {{/each}}
+      </tbody>
+    </table>
+  {{/bs-panel}}
+{{/if}}
+
+{{#if model.hbaseSite}}
+  {{#bs-panel heading="HBase-Site" collapsible=true}}
+    <table class="table table-striped table-bordered table-condensed">
+      <thead>
+      <tr>
+        <th class="col-sm-4">{{t common.name}}</th>
+        <th>{{t common.value}}</th>
+      </tr>
+      </thead>
+      <tbody>
+        {{#each model.hbaseSite}}
+        <tr>
+          <td>{{key}}</td>
+          <td>{{value}}</td>
+        </tr>
+        {{/each}}
+      </tbody>
+    </table>
+  {{/bs-panel}}
+{{/if}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/contrib/views/slider/src/main/resources/ui/app/templates/slider_app/summary.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/templates/slider_app/summary.hbs b/contrib/views/slider/src/main/resources/ui/app/templates/slider_app/summary.hbs
new file mode 100644
index 0000000..fab5ea8
--- /dev/null
+++ b/contrib/views/slider/src/main/resources/ui/app/templates/slider_app/summary.hbs
@@ -0,0 +1,20 @@
+{{!
+* 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.
+}}
+Summary
+
+{{model.id}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/contrib/views/slider/src/main/resources/ui/app/templates/slider_apps.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/templates/slider_apps.hbs b/contrib/views/slider/src/main/resources/ui/app/templates/slider_apps.hbs
index 385a790..024e638 100644
--- a/contrib/views/slider/src/main/resources/ui/app/templates/slider_apps.hbs
+++ b/contrib/views/slider/src/main/resources/ui/app/templates/slider_apps.hbs
@@ -17,13 +17,14 @@
 }}
 
 <div id="slider-apps-table">
-  <div class="box-header row">
+  <div class="box-header">
     <div class="pull-right create-app">
-      <a href="#" class="btn btn-inverse" {{action createApp}}>
+      <a href="#" class="btn btn-primary" {{action createApp}}>
         <i class="icon-plus"></i><span>&nbsp;{{t slider.apps.create}}</span>
       </a>
     </div>
   </div>
+
   <table class="datatable table table-bordered table-striped" id="slider-table">
     <thead>
     {{#view view.sortView classNames="label-row" contentBinding="view.filteredContent"}}
@@ -49,7 +50,7 @@
         {{#view view.SliderView contentBinding="slider"}}
 
           <td>
-            {{#link-to 'slider_app' slider}}
+            {{#link-to 'slider_app.summary' slider}}
               {{slider.name}}
             {{/link-to}}
           </td>

http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/contrib/views/slider/src/main/resources/ui/app/translations.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/translations.js b/contrib/views/slider/src/main/resources/ui/app/translations.js
index 035c405..01eb089 100644
--- a/contrib/views/slider/src/main/resources/ui/app/translations.js
+++ b/contrib/views/slider/src/main/resources/ui/app/translations.js
@@ -19,12 +19,24 @@
 
 Em.I18n.translations = {
 
+  'ok': 'OK',
+
   'common' : {
-    'show': "Show",
+    'show': 'Show',
+    'actions': 'Actions',
+    'cancel': 'Cancel',
     'name': "Name",
+    'value': "Value",
     'next': "Next",
-    'quickLinks': "Quick Links"
+    'quickLinks': "Quick Links",
+    'summary': 'Summary',
+    'configs': 'Configs',
+    'metrics': 'Metrics'
   },
+
+  'popup.confirmation.commonHeader': 'Confirmation',
+  'question.sure':'Are you sure?',
+
   'tableView.filters.all': 'All',
   'tableView.filters.filtered': 'Filtered',
   'tableView.filters.clearFilters': 'Clear filters',

http://git-wip-us.apache.org/repos/asf/ambari/blob/79eb5f5b/contrib/views/slider/src/main/resources/ui/config.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/config.js b/contrib/views/slider/src/main/resources/ui/config.js
index d506483..60d701b 100755
--- a/contrib/views/slider/src/main/resources/ui/config.js
+++ b/contrib/views/slider/src/main/resources/ui/config.js
@@ -33,6 +33,9 @@ exports.config = {
           'vendor/scripts/common/handlebars.js',
           'vendor/scripts/development/ember.js',
           'vendor/scripts/production/ember-data.js',
+          'vendor/scripts/common/bs-core.min.js',
+          'vendor/scripts/common/bs-nav.min.js',
+          'vendor/scripts/common/bs-basic.min.js',
           'vendor/scripts/common/ember-i18n-1.4.1.js',
           'vendor/scripts/common/bootstrap.js'
         ]
@@ -75,6 +78,9 @@ exports.config = {
               'vendor/scripts/common/handlebars.js',
               'vendor/scripts/production/ember.js',
               'vendor/scripts/production/ember-data.js',
+              'vendor/scripts/common/bs-core.min.js',
+              'vendor/scripts/common/bs-nav.min.js',
+              'vendor/scripts/common/bs-basic.min.js',
               'vendor/scripts/common/ember-i18n-1.4.1.js',
               'vendor/scripts/common/bootstrap.js'
             ]