You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2014/09/26 18:48:41 UTC
[26/44] git commit: AMBARI-7509. Slider View: Create Slider App
wizard should have entries for multiple new features. (onechiporenko)
AMBARI-7509. Slider View: Create Slider App wizard should have entries for multiple new features. (onechiporenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/9074f835
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/9074f835
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/9074f835
Branch: refs/heads/branch-alerts-dev
Commit: 9074f835744eb16c43b2702971c7849f7fdcead8
Parents: 88e940c
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Fri Sep 26 13:09:08 2014 +0300
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Fri Sep 26 13:09:08 2014 +0300
----------------------------------------------------------------------
.../createAppWizard/step1_controller.js | 52 +-
.../createAppWizard/step2_controller.js | 31 +-
.../ui/app/routes/create_app_wizard.js | 19 +
.../src/main/resources/ui/app/styles/app.less | 276 ++++++
.../resources/ui/app/styles/application.less | 978 +------------------
.../resources/ui/app/styles/apps-table.less | 320 ++++++
.../main/resources/ui/app/styles/common.less | 102 ++
.../resources/ui/app/styles/old-bootstrap.less | 164 ++++
.../main/resources/ui/app/styles/wizard.less | 205 ++++
.../ui/app/templates/createAppWizard/step1.hbs | 156 ++-
.../ui/app/templates/createAppWizard/step2.hbs | 23 +-
.../src/main/resources/ui/app/translations.js | 17 +-
.../ui/app/views/createAppWizard/step1_view.js | 47 +-
.../ui/app/views/createAppWizard/step2_view.js | 15 +-
14 files changed, 1329 insertions(+), 1076 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/9074f835/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step1_controller.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step1_controller.js b/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step1_controller.js
index 3829503..7802f3a 100644
--- a/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step1_controller.js
+++ b/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step1_controller.js
@@ -29,12 +29,6 @@ App.CreateAppWizardStep1Controller = Ember.Controller.extend({
newApp: null,
/**
- * Name for new App
- * @type {String}
- */
- newAppName: '',
-
- /**
* List of available types for App
* @type {Array}
*/
@@ -62,10 +56,7 @@ App.CreateAppWizardStep1Controller = Ember.Controller.extend({
* Define if there are existing App types
* @type {Boolean}
*/
- isAppTypesError: function(){
- return !this.get('availableTypes.content.length');
- }.property('availableTypes.content.length'),
-
+ isAppTypesError: Em.computed.equal('availableTypes.content.length', 0),
/**
* Define description depending on selected App type
* @type {string}
@@ -77,32 +68,36 @@ App.CreateAppWizardStep1Controller = Ember.Controller.extend({
/**
* Define if submit button is disabled
- * <code>newAppName</code> should pass validation and be not empty
+ * <code>newApp.name</code> should pass validation and be not empty
* @type {bool}
*/
isSubmitDisabled: function () {
- return !this.get('newAppName') || this.get('isNameError') || this.get('isAppTypesError');
- }.property('newAppName', 'isNameError', 'isAppTypesError'),
-
- /**
- * Load all required data for step
- * @method loadStep
- */
- loadStep: function () {
- this.initializeNewApp();
- this.loadAvailableTypes();
- },
+ return !this.get('newApp.name') || this.get('isNameError') || this.get('isAppTypesError');
+ }.property('newApp.name', 'isNameError', 'isAppTypesError'),
/**
* Initialize new App and set it to <code>newApp</code>
* @method initializeNewApp
*/
initializeNewApp: function () {
- var newApp = Ember.Object.create({
- name: '',
- appType: null,
- configs: {}
+ var app = this.get('appWizardController.newApp'),
+ properties = Em.A(['name', 'includeFilePatterns', 'excludeFilePatterns', 'frequency', 'queueName', 'specialLabel', 'selectedYarnLabel']),
+ newApp = Ember.Object.create({
+ appType: null,
+ configs: {}
+ });
+
+ properties.forEach(function(p) {
+ newApp.set(p, '');
});
+ newApp.set('selectedYarnLabel', 0);
+
+ if (app) {
+ properties.forEach(function(p) {
+ newApp.set(p, app.get(p));
+ });
+ }
+
this.set('newApp', newApp);
},
@@ -121,7 +116,7 @@ App.CreateAppWizardStep1Controller = Ember.Controller.extend({
* @return {Boolean}
*/
nameValidator: function () {
- var newAppName = this.get('newAppName');
+ var newAppName = this.get('newApp.name');
if (newAppName) {
// new App name should consist only of letters, numbers, '-', '_' and first character should be a letter
if (!/^[A-Za-z][A-Za-z0-9_\-]*$/.test(newAppName)) {
@@ -138,7 +133,7 @@ App.CreateAppWizardStep1Controller = Ember.Controller.extend({
}
this.set('isNameError', false);
return true;
- }.observes('newAppName'),
+ }.observes('newApp.name'),
/**
* Save new application data to wizard controller
@@ -147,7 +142,6 @@ App.CreateAppWizardStep1Controller = Ember.Controller.extend({
saveApp: function () {
var newApp = this.get('newApp');
newApp.set('appType', this.get('selectedType'));
- newApp.set('name', this.get('newAppName'));
newApp.set('configs', this.get('selectedType.configs'));
newApp.set('predefinedConfigNames', Em.keys(this.get('selectedType.configs')));
this.set('appWizardController.newApp', newApp);
http://git-wip-us.apache.org/repos/asf/ambari/blob/9074f835/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step2_controller.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step2_controller.js b/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step2_controller.js
index c1ff3fe..55f0451 100644
--- a/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step2_controller.js
+++ b/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step2_controller.js
@@ -24,7 +24,8 @@ App.CreateAppWizardStep2Controller = Ember.ArrayController.extend({
/**
* List of app type components
- * @type {App.SliderAppTypeComponent}
+ * @type {Em.Object[]}
+ * @see <code>loadTypeComponents</code> for information about elements type
*/
content: [],
@@ -53,17 +54,7 @@ App.CreateAppWizardStep2Controller = Ember.ArrayController.extend({
* <code>isError</code> should be true
* @type {bool}
*/
- isSubmitDisabled: function () {
- return this.get('isError');
- }.property('isError'),
-
- /**
- * Load all required data for step
- * @method loadStep
- */
- loadStep: function () {
- this.initializeNewApp();
- },
+ isSubmitDisabled: Em.computed.alias('isError'),
/**
* Initialize new App to use it scope of controller
@@ -76,15 +67,25 @@ App.CreateAppWizardStep2Controller = Ember.ArrayController.extend({
},
/**
+ * @type {Em.Object}
+ */
+ typeComponent: Em.Object.extend({
+ yarnLabelChecked: false,
+ yarnLabelNotChecked: Em.computed.not('yarnLabelChecked'),
+ yarnLabel: ''
+ }),
+
+ /**
* Fill <code>content</code> with objects created from <code>App.SliderAppTypeComponent</code>
* @method loadTypeComponents
*/
loadTypeComponents: function () {
- var content = [];
- var allTypeComponents = this.get('newApp.appType.components');
+ var content = [],
+ component = this.get('typeComponent'),
+ allTypeComponents = this.get('newApp.appType.components');
if (allTypeComponents && allTypeComponents.get('length')) {
allTypeComponents.forEach(function (typeComponent) {
- content.push(Ember.Object.create({
+ content.push(component.create({
displayName: typeComponent.get('displayName'),
name: typeComponent.get('name'),
priority: typeComponent.get('priority'),
http://git-wip-us.apache.org/repos/asf/ambari/blob/9074f835/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
index 1392067..de1f52d 100644
--- 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
@@ -33,3 +33,22 @@ App.CreateAppWizardRoute = Ember.Route.extend({
}
}
});
+
+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/9074f835/contrib/views/slider/src/main/resources/ui/app/styles/app.less
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/styles/app.less b/contrib/views/slider/src/main/resources/ui/app/styles/app.less
new file mode 100644
index 0000000..0773ce5
--- /dev/null
+++ b/contrib/views/slider/src/main/resources/ui/app/styles/app.less
@@ -0,0 +1,276 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@import-once 'common.less';
+
+.app-page {
+ .wrap-tabs {
+ margin-top: 30px;
+ }
+ .quick-links-wrapper {
+ .nav-pills.move {
+ float: right;
+ width:135px;
+ &>li {
+ position: absolute;
+ }
+ }
+ .dropdown-submenu {
+ &> a:after {
+ border-left-color: #333;
+ }
+ }
+ .nav li.dropdown.open {
+ .dropdown-toggle{
+ color: #005580;
+ background-color: #eeeeee;
+ border-color: #eeeeee;
+ -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+ -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+ }
+ a:hover .caret {
+ border-top-color: #005580;
+ border-bottom-color: #005580;
+ }
+ .caret {
+ border-top-color: #005580;
+ border-bottom-color: #005580;
+ }
+ }
+ }
+}
+
+.app_summary {
+ padding-left: 0;
+ table {
+ &.no-borders {
+ td {
+ border-width: 0;
+ }
+ }
+ td:nth-child(2) span{
+ word-break: break-all;
+ }
+ }
+ .panel-heading {
+ font-weight: 700;
+ }
+ .panel-summary {
+ min-height: 400px;
+ td:first-child {
+ text-align: right;
+ }
+ }
+ .panel-components {
+ .status {
+ display: inline-block;
+ width: 25px;
+ }
+ .icon-ok-sign {
+ color: #5ab400;
+ }
+ .icon-warning-sign {
+ color: #ff0000;
+ }
+ .panel-body{
+ /*max-height: 400px;
+ overflow-x: auto;*/
+ }
+ }
+ .panel-link {
+ margin-top: -5px;
+ margin-right: -7px;
+ }
+}
+
+.chart-container {
+ cursor: default;
+
+ position: relative;
+ margin: 20px 15px 0px 15px;
+
+ .chart {
+ position: relative;
+ z-index: 1;
+ }
+ .chart-y-axis {
+ position: absolute;
+ top: 0;
+ bottom: 0px;
+ width: 100px;
+ z-index: 2;
+ margin-top: 15px;
+ }
+ .chart-x-axis {
+ position: absolute;
+ top: 180px;
+ left: 35%;
+ width: 30%;
+ z-index: 2;
+ }
+ .x_tick {
+ margin-top: 5px;
+ .title {
+ padding: 0 2px 0 2px;
+ opacity: 1 !important;
+ top: 148px;
+ }
+ }
+ svg {
+ g {
+ g:nth-child(1) {
+ display: none;
+ }
+ }
+ }
+ text {
+ font-weight: 700;
+ opacity: 1 !important;
+ }
+ .chart-legend {
+ font-family: 'Courier New';
+ position: absolute;
+ top: 180px;
+ z-index: 3;
+ }
+ .rickshaw_legend {
+ background-color: #999 !important;
+ li:hover {
+ background-color: #999 !important;
+ }
+ }
+ .rickshaw_legend:empty {
+ padding: 0;
+ }
+ .rickshaw_graph {
+ .x_tick {
+ .title {
+ bottom: -6px;
+ opacity: 0.75;
+ }
+ }
+ }
+ .chart-overlay {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ width: 100%;
+ z-index: 5;
+ }
+ .chart-title {
+ text-align: center;
+ margin-top: 20px;
+ }
+}
+
+.app_configs {
+ a.accordion-toggle {
+ display: block;
+ }
+ .panel-heading{
+ .icon{
+ width: 24px;
+ }
+ }
+ .row {
+ .table-row();
+ textarea {
+ height: 200px;
+ padding-left: 5px;
+ padding-right: 5px;
+ resize: none;
+ }
+ textarea[disabled] {
+ cursor: not-allowed;
+ background-color: #eeeeee;
+ }
+ input[disabled] {
+ cursor: not-allowed;
+ background-color: #eeeeee;
+ }
+ .property-name {
+ word-wrap: break-word;
+ }
+ }
+}
+
+.app-alerts {
+ overflow-y: auto;
+ ul {
+ padding-left: 0;
+ margin-bottom: 0;
+ }
+ li {
+ border-bottom: 1px solid #eee;
+ list-style: none;
+ padding: 5px;
+ background-position: 14px 9px;
+ background-repeat: no-repeat;
+ .date-time {
+ float: right;
+ }
+ p {
+ margin-bottom: 2px;
+ }
+ .container-fluid {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+ .title {
+ font-weight: normal;
+ font-size: 13px;
+ }
+ .row-fluid [class*="span"] {
+ min-height: 0px;
+ }
+ .date-time {
+ color: #999;
+ font-style: italic;
+ font-size: small;
+ text-align: right;
+ }
+ .message {
+ font-size: 12px;
+ color: #777;
+ word-break: break-all;
+ padding-right: 15px;
+ }
+ .serviceLink {
+ padding-left: 7px;
+ }
+ }
+ .icon-ok {
+ color: #5AB400;
+ }
+ .icon-remove {
+ color: #FF4B4B;
+ }
+ .icon-warning-sign {
+ color: #FDB82F;
+ }
+ .icon-question-sign {
+ color: #999;
+ }
+}
+
+.flex-popup {
+ .row {
+ .table-row();
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/9074f835/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 901682c..71b537e 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,976 +16,8 @@
* limitations under the License.
*/
-.table-row() {
- margin: 10px 0;
-}
-
-html {
- overflow-y: scroll;
-}
-.icon-minus-sign {
- color: #FF4B4B;
-}
-.tooltip {
- z-index: 1500;
-}
-.popover {
- max-width: 800px;
- &.bottom {
- left: 5px;
- }
-}
-
-.slider-name-popover {
- max-width: 600px !important;
- .row {
- .table-row();
- }
-}
-
-a {
- cursor: pointer;
-}
-
-select {
- background-color: #ffffff;
- border: 1px solid #cccccc;
- color: #555555;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
-}
-
-.well {
- border-radius: 0px;
- -webkit-border-radius: 0px;
- -moz-border-radius: 0px;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
-}
-
-.nav-pills {
- &>li {
- &> a {
- border-radius: 0px;
- -webkit-border-radius: 0px;
- -moz-border-radius: 0px;
- }
- &.active {
- &> a, &> a:hover, &> a:focus {
- background-color: #666666;
-
- }
- }
- }
-}
-
-.slider-header {
- overflow: hidden;
- .box-header {
- padding-top: 20px;
- }
-}
-
-#slider-apps-table {
-
- #slider-table {
- border-bottom: 1px solid #ddd;
- border-left: 1px solid #ddd;
- border-right: 1px solid #ddd;
- margin-top: 10px;
- margin-bottom: 10px;
- font-size: 13px\9;
- table-layout: fixed;
-
- th {
- width: 17.5%!important;
- }
-
- select {
- height: 23px;
- margin-bottom: 10px;
- font-size: 75%;
- }
-
- .label-row {
- font-size: 0.9em;
- th {
- padding: 4px;
- border-bottom: none !important;
- }
- .active-sort {
- color: #555555;
- text-decoration: none;
- background-color: #e5e5e5;
- -webkit-box-shadow: inset 0 5px 8px rgba(0, 0, 0, 0.100);
- -moz-box-shadow: inset 0 5px 8px rgba(0, 0, 0, 0.100);
- box-shadow: inset 0 5px 8px rgba(0, 0, 0, 0.100);
- }
- }
-
- #filter-row {
- th {
- padding: 0 0 0 4px;
- }
- .active-filter {
- color: #555555;
- text-decoration: none;
- background-color: #e5e5e5;
- -webkit-box-shadow: inset 0 -5px 8px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: inset 0 -5px 8px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 -5px 8px rgba(0, 0, 0, 0.05);
- }
- input {
- font-size: 12px;
- height: 24px;
- margin-bottom: 10px;
- }
- .filter-btn {
- color: #999999;
- font-size: 12px;
- line-height: 14px;
- padding-left: 6px;
- text-align: left;
- width: 100px;
- .icon-filter {
- color: #999999;
- }
- }
- }
- thead {
- background: none repeat scroll 0 0 #F8F8F8;
- border-top: 1px solid #ddd;
- }
- }
- .page-bar {
- border: 1px solid #E4E4E4;
- color: #7B7B7B;
- text-align: right;
- font-size: 12px;
- label {
- font-size: 12px;
- font-weight: normal;
- }
- div {
- display: inline-block;
- margin:0 10px;
- }
- .filtered-hosts-info, .selected-hosts-info {
- float: left;
- text-align: left;
- margin-top: 8px;
- margin-left: 17px;
- }
- .items-on-page {
- label {
- display:inline;
- }
- select {
- margin-bottom: 4px;
- margin-top: 4px;
- width:70px;
- font-size: 12px;
- height: 27px;
- padding: 4px 6px;
- }
- }
- .paging_two_button {
- a.paginate_disabled_next, a.paginate_disabled_previous {
- color: gray;
- &:hover {
- color: gray;
- text-decoration: none;
- cursor: default;
- }
- }
-
- a.paginate_next, a.paginate_previous {
- &:hover {
- text-decoration: none;
- cursor: pointer;
- }
- }
- a {
- padding:0 5px;
- }
- }
- }
- .box-header {
- margin-left: 0;
- .btn-group {
- float: left;
- }
- .btn.decommission {
- margin-left: 5px;
- }
- .btn.add-host-button {
- margin-bottom: 10px;
- margin-top: -5px;
- }
- .hosts-actions {
- margin-right: 10px;
- }
- .health-status-bar {
- font-size: 0.9em;
- margin-left: 0;
- color: #b4b4b4;
- a {
- text-decoration: none;
- }
- .category-item:hover {
- cursor: pointer;
- a {
- color: #ffffff;
- }
- }
- .active {
- a {
- color: #ffffff;
- }
- background-color: #888888;
- border-color: #888888;
- -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.25);
- -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.25);
- box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.25);
- }
- .category-item.active:hover {
- a {
- color: #ffffff;
- }
- }
- }
- }
-
- .filter-input-width{
- width:68%;
- font-weight: normal;
- }
- .table {
-
- thead {
- tr {
- th {
- border-bottom: none;
- }
- }
- }
-
- table-layout: fixed;
- th {
- border-top: none;
- }
- th, td {
- padding-left: 4px;
- padding-right: 4px;
- border-left-width: 0;
- }
- input[type="checkbox"] {
- margin: -2px 0 0 0;
- }
-
- .sorting_asc {
- background: url(data:image/png;base64,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) no-repeat right 50
%;
- }
- .sorting_desc {
- background: url(data:image/png;base64,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) no-repeat right 50%;
- }
- .sorting {
- background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAKQWlDQ1BJQ0MgUHJvZmlsZQAASA2dlndUU9kWh8+9N73QEiIgJfQaegkg0jtIFQRRiUmAUAKGhCZ2RAVGFBEpVmRUwAFHhyJjRRQLg4Ji1wnyEFDGwVFEReXdjGsJ7601896a/cdZ39nnt9fZZ+9917oAUPyCBMJ0WAGANKFYFO7rwVwSE8vE9wIYEAEOWAHA4WZmBEf4RALU/L09mZmoSMaz9u4ugGS72yy/UCZz1v9/kSI3QyQGAApF1TY8fiYX5QKUU7PFGTL/BMr0lSkyhjEyFqEJoqwi48SvbPan5iu7yZiXJuShGlnOGbw0noy7UN6aJeGjjAShXJgl4GejfAdlvVRJmgDl9yjT0/icTAAwFJlfzOcmoWyJMkUUGe6J8gIACJTEObxyDov5OWieAHimZ+SKBIlJYqYR15hp5ejIZvrxs1P5YjErlMNN4Yh4TM/0tAyOMBeAr2+WRQElWW2ZaJHtrRzt7VnW5mj5v9nfHn5T/T3IevtV8Sbsz55BjJ5Z32zsrC+9FgD2JFqbHbO+lVUAtG0GQOXhrE/vIADyBQC03pzzHoZsXpLE4gwnC4vs7GxzAZ9rLivoN/ufgm/Kv4Y595nL7vtWO6YXP4EjSRUzZUXlpqemS0TMzAwOl89k/fcQ/+PAOWnNycMsnJ/AF/GF6FVR6JQJhIlou4U8gViQLmQKhH/V4X8YNicHGX6daxRodV8AfYU5ULhJB8hvPQBDIwMkbj96An3rWxAxCsi+vGitka9zjzJ6/uf6Hwtcim7hTEEiU+b2DI9kciWiLBmj34RswQISkAd0oAo0gS4wAixgDRyAM3AD3iAAhIBIEAOWAy5IAmlABLJBPtgACkEx2AF2g2pwANSBetAEToI2cAZcBFfADXALDIBHQAqGwUswA
d6BaQiC8BAVokGqkBakD5lC1hAbWgh5Q0FQOBQDxUOJkBCSQPnQJqgYKoOqoUNQPfQjdBq6CF2D+qAH0CA0Bv0BfYQRmALTYQ3YALaA2bA7HAhHwsvgRHgVnAcXwNvhSrgWPg63whfhG/AALIVfwpMIQMgIA9FGWAgb8URCkFgkAREha5EipAKpRZqQDqQbuY1IkXHkAwaHoWGYGBbGGeOHWYzhYlZh1mJKMNWYY5hWTBfmNmYQM4H5gqVi1bGmWCesP3YJNhGbjS3EVmCPYFuwl7ED2GHsOxwOx8AZ4hxwfrgYXDJuNa4Etw/XjLuA68MN4SbxeLwq3hTvgg/Bc/BifCG+Cn8cfx7fjx/GvyeQCVoEa4IPIZYgJGwkVBAaCOcI/YQRwjRRgahPdCKGEHnEXGIpsY7YQbxJHCZOkxRJhiQXUiQpmbSBVElqIl0mPSa9IZPJOmRHchhZQF5PriSfIF8lD5I/UJQoJhRPShxFQtlOOUq5QHlAeUOlUg2obtRYqpi6nVpPvUR9Sn0vR5Mzl/OX48mtk6uRa5Xrl3slT5TXl3eXXy6fJ18hf0r+pvy4AlHBQMFTgaOwVqFG4bTCPYVJRZqilWKIYppiiWKD4jXFUSW8koGStxJPqUDpsNIlpSEaQtOledK4tE20Otpl2jAdRzek+9OT6cX0H+i99AllJWVb5SjlHOUa5bPKUgbCMGD4M1IZpYyTjLuMj/M05rnP48/bNq9pXv+8KZX5Km4qfJUilWaVAZWPqkxVb9UU1Z2qbapP1DBqJmphatlq+9Uuq43Pp893ns+dXzT/5PyH6rC6iXq4+mr1w+o96pMamhq+GhkaVRqXNMY1GZpumsma5ZrnNMe0aFoLtQRa5VrntV4wlZnuzFRmJbOLOaGtru2nLdE+pN2rPa1jqLNYZ6NOs84TXZIuWzdBt1y3U3dCT0svWC9fr1HvoT5Rn62fpL9Hv1t/ysDQINpgi0GbwaihiqG/YZ5ho+
FjI6qRq9Eqo1qjO8Y4Y7ZxivE+41smsImdSZJJjclNU9jU3lRgus+0zwxr5mgmNKs1u8eisNxZWaxG1qA5wzzIfKN5m/krCz2LWIudFt0WXyztLFMt6ywfWSlZBVhttOqw+sPaxJprXWN9x4Zq42Ozzqbd5rWtqS3fdr/tfTuaXbDdFrtOu8/2DvYi+yb7MQc9h3iHvQ732HR2KLuEfdUR6+jhuM7xjOMHJ3snsdNJp9+dWc4pzg3OowsMF/AX1C0YctFx4bgccpEuZC6MX3hwodRV25XjWuv6zE3Xjed2xG3E3dg92f24+ysPSw+RR4vHlKeT5xrPC16Il69XkVevt5L3Yu9q76c+Oj6JPo0+E752vqt9L/hh/QL9dvrd89fw5/rX+08EOASsCegKpARGBFYHPgsyCRIFdQTDwQHBu4IfL9JfJFzUFgJC/EN2hTwJNQxdFfpzGC4sNKwm7Hm4VXh+eHcELWJFREPEu0iPyNLIR4uNFksWd0bJR8VF1UdNRXtFl0VLl1gsWbPkRoxajCCmPRYfGxV7JHZyqffS3UuH4+ziCuPuLjNclrPs2nK15anLz66QX8FZcSoeGx8d3xD/iRPCqeVMrvRfuXflBNeTu4f7kufGK+eN8V34ZfyRBJeEsoTRRJfEXYljSa5JFUnjAk9BteB1sl/ygeSplJCUoykzqdGpzWmEtPi000IlYYqwK10zPSe9L8M0ozBDuspp1e5VE6JA0ZFMKHNZZruYjv5M9UiMJJslg1kLs2qy3mdHZZ/KUcwR5vTkmuRuyx3J88n7fjVmNXd1Z752/ob8wTXuaw6thdauXNu5Tnddwbrh9b7rj20gbUjZ8MtGy41lG99uit7UUaBRsL5gaLPv5sZCuUJR4b0tzlsObMVsFWzt3WazrWrblyJe0fViy+KK4k8l3JLr31l9V/ndzPaE7b2l9qX7d+B2CHfc3em681iZYlle2dCu4F2t5czyovK3u1fsvlZhW3F
gD2mPZI+0MqiyvUqvakfVp+qk6oEaj5rmvep7t+2d2sfb17/fbX/TAY0DxQc+HhQcvH/I91BrrUFtxWHc4azDz+ui6rq/Z39ff0TtSPGRz0eFR6XHwo911TvU1zeoN5Q2wo2SxrHjccdv/eD1Q3sTq+lQM6O5+AQ4ITnx4sf4H++eDDzZeYp9qukn/Z/2ttBailqh1tzWibakNml7THvf6YDTnR3OHS0/m/989Iz2mZqzymdLz5HOFZybOZ93fvJCxoXxi4kXhzpXdD66tOTSna6wrt7LgZevXvG5cqnbvfv8VZerZ645XTt9nX297Yb9jdYeu56WX+x+aem172296XCz/ZbjrY6+BX3n+l37L972un3ljv+dGwOLBvruLr57/17cPel93v3RB6kPXj/Mejj9aP1j7OOiJwpPKp6qP6391fjXZqm99Oyg12DPs4hnj4a4Qy//lfmvT8MFz6nPK0a0RupHrUfPjPmM3Xqx9MXwy4yX0+OFvyn+tveV0auffnf7vWdiycTwa9HrmT9K3qi+OfrW9m3nZOjk03dp76anit6rvj/2gf2h+2P0x5Hp7E/4T5WfjT93fAn88ngmbWbm3/eE8/syOll+AAAACXBIWXMAAAsTAAALEwEAmpwYAAABmElEQVQ4EdWSv0vDQBTH7y4ZUkKhTdtYHArOUvwPdHAVpeBY3PwH/BfEycF/wclR6NzBxUFxKrgokRLaSkmhTZr+ADWJ32s5DeXaSkHBW97du/c+73vvHiF/vaIooj+pyZYFAaTbtn0DuzR2YQBX1G63K57n7TQajfNlhRfCfN8/6na7u4AS13VPOp3O/iLgXBgAa0i+/Hh7J5RSEoYh6fV6FfjX5wGlMCQwgKpQNs0Lo4kdjUYEz77FvSIDSmGA7DmOU+SKxGJkukeRDfTwWPjjVo0fxH48Hic1TbtmjBX5c2F1WA/3rSAI7obDoSVif81+vyNWAmNQHgwGB6qqbqHxOUVRklDk
Q2ELCu+h+qJQKDzGUiZb6TPT6TTt9/uHABLeK947QFKE0RSyNg3DkM6c9AN0Xb9CwguUCNDXeKDQQyaTeZpVxc9SZVASQMk2frWFzyCTwUBDElqCmKZZxv10VmaIUmU8Bgmv+Xy+JNRxXzabraJfz3y/0mo2m2e1Wi2q1+sQG+VWgogkAKhlWaeY/pLw/T/7CTBQv9a27vsbAAAAAElFTkSuQmCC) no-repeat right 50%;
- }
- div.view-wrapper {
- input[type="checkbox"], .btn-group {
- margin-bottom: 9px;
- }
- }
-
- a.ui-icon-circle-close {
- float: right;
- opacity: 0.2;
- padding: 1px 0;
- position: relative;
- right: 0px;
- margin-top: 3px;
- z-index: 10;
- &:hover {
- opacity: 0.7;
- }
- }
- .notActive {
- a.ui-icon-circle-close {
- visibility: hidden;
- }
- }
- }
-
- .open-group > .dropdown-menu {
- display: block;
- }
- .nav-pills li.disabled {
- display: block;
- margin: 2px 0;
- padding: 8px 12px;
- line-height: 14px;
- }
- .box-footer .footer-pagination {
- float: right;
- .nav {
- margin-bottom: 0;
- }
- .dropdown {
- margin-top: 3px;
- }
- .dropdown {
- margin-top: 3px;
- }
- .dropdown select {
- width: 60px;
- }
- .page-listing a {
- line-height: 0;
- border: none;
- margin: 0 10px 0 0;
- cursor: pointer;
- color: #0088CC;
- padding: 8px 0;
- float: left;
- text-decoration: underline;
- }
- .page-listing a:hover {
- text-decoration: none;
- }
- .page-listing {
- width: 100px;
- .table {
- th.name {
- width: 300px;
- a.filter-label {
- width: 57px;
- display: block;
- float: left;
- }
- }
- }
- }
- }
- .host-components-expander {
- .icon-caret-right, .icon-caret-down {
- vertical-align: middle;
- margin-right: 5px;
- margin-bottom: 2px;
- text-decoration: none;
- }
- }
- .host-components {
- display: none;
- padding-left: 13px;
- }
- .sort-wrapper .column-name {
- cursor: pointer;
- padding-right: 18px;
- }
- .table-bordered {
- border-left:1px solid #dddddd;
- }
-}
-
-#createAppWizard {
- width: 80%;
- margin: 0 0 auto;
- left: 10%;
- .wizard-nav {
- padding-left: 0px;
- }
- h5 {
- font-weight: bold;
- }
- .slider-modal-body {
- height: 90%;
- max-height: 90%;
- .wizard-content{
- min-height: 95%;
- padding-bottom: 49px;
- background-color: #ffffff;
- }
- .container-fluid {
- height: 100%;
- .row {
- height: 100%;
- }
- .btn-area {
- position: absolute;
- right: 19px;
- bottom: 19px;
- left: 19px;
- }
- }
- }
- .next-btn {
- margin-left: 5px;
- }
- .type-select {
- width: 90%;
- min-height: 250px;
- }
- #app-name-input {
- margin-left: 10px;
- }
- #configs-text-area {
- margin-bottom: 10px;
- height: 225px;
- }
- #step4 {
- ul {
- list-style: none;
- }
- pre {
- margin-left: 30px;
- max-height: 124px;
- }
- }
- #step2 {
- .table-container {
- max-height: 248px;
- border: 1px solid #e3e3e3;
- padding: 5px;
- border-radius: 4px;
- overflow: hidden;
- .components-table {
- width: 100%;
- border-spacing: 10px;
- border-collapse: separate;
- input{
- width: 124px;
- }
- }
- margin-bottom: 30px;
- }
- }
- #step1 {
- .app-types-alert {
- margin-top: 20px;
- }
- }
- .app-wiz-configs {
- .accordion-toggle {
- display: block;
- }
- .panel-heading{
- .icon{
- width: 23px;
- }
- }
- }
-}
-
-.app-page {
- .wrap-tabs {
- margin-top: 30px;
- }
- .quick-links-wrapper {
- .nav-pills.move {
- float: right;
- width:135px;
- &>li {
- position: absolute;
- }
- }
- .dropdown-submenu {
- &> a:after {
- border-left-color: #333;
- }
- }
- .nav li.dropdown.open {
- .dropdown-toggle{
- color: #005580;
- background-color: #eeeeee;
- border-color: #eeeeee;
- -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
- }
- a:hover .caret {
- border-top-color: #005580;
- border-bottom-color: #005580;
- }
- .caret {
- border-top-color: #005580;
- border-bottom-color: #005580;
- }
- }
- }
-}
-
-.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;
-}
-
-
-.modal {
- overflow-y: hidden;
-}
-.modal-backdrop {
- opacity: 0.8;
-}
-.modal-backdrop.in {
- opacity:0;
-}
-
-/**
- * App Summary Page
- */
-.app_summary {
- padding-left: 0;
- table {
- &.no-borders {
- td {
- border-width: 0;
- }
- }
- td:nth-child(2) span{
- word-break: break-all;
- }
- }
- .panel-heading {
- font-weight: 700;
- }
- .panel-summary {
- min-height: 400px;
- td:first-child {
- text-align: right;
- }
- }
- .panel-components {
- .status {
- display: inline-block;
- width: 25px;
- }
- .icon-ok-sign {
- color: #5ab400;
- }
- .icon-warning-sign {
- color: #ff0000;
- }
- .panel-body{
- /*max-height: 400px;
- overflow-x: auto;*/
- }
- }
- .panel-link {
- margin-top: -5px;
- margin-right: -7px;
- }
-}
-
-.chart-container {
- cursor: default;
-
- position: relative;
- margin: 20px 15px 0px 15px;
-
- .chart {
- position: relative;
- z-index: 1;
- }
- .chart-y-axis {
- position: absolute;
- top: 0;
- bottom: 0px;
- width: 100px;
- z-index: 2;
- margin-top: 15px;
- }
- .chart-x-axis {
- position: absolute;
- top: 180px;
- left: 35%;
- width: 30%;
- z-index: 2;
- }
- .x_tick {
- margin-top: 5px;
- .title {
- padding: 0 2px 0 2px;
- opacity: 1 !important;
- top: 148px;
- }
- }
- svg {
- g {
- g:nth-child(1) {
- display: none;
- }
- }
- }
- text {
- font-weight: 700;
- opacity: 1 !important;
- }
- .chart-legend {
- font-family: 'Courier New';
- position: absolute;
- top: 180px;
- z-index: 3;
- }
- .rickshaw_legend {
- background-color: #999 !important;
- li:hover {
- background-color: #999 !important;
- }
- }
- .rickshaw_legend:empty {
- padding: 0;
- }
- .rickshaw_graph {
- .x_tick {
- .title {
- bottom: -6px;
- opacity: 0.75;
- }
- }
- }
- .chart-overlay {
- position: absolute;
- top: 0;
- bottom: 0;
- width: 100%;
- z-index: 5;
- }
- .chart-title {
- text-align: center;
- margin-top: 20px;
- }
-}
-
-.app_configs {
- a.accordion-toggle {
- display: block;
- }
- .panel-heading{
- .icon{
- width: 24px;
- }
- }
- .row {
- .table-row();
- textarea {
- height: 200px;
- padding-left: 5px;
- padding-right: 5px;
- resize: none;
- }
- textarea[disabled] {
- cursor: not-allowed;
- background-color: #eeeeee;
- }
- input[disabled] {
- cursor: not-allowed;
- background-color: #eeeeee;
- }
- .property-name {
- word-wrap: break-word;
- }
- }
-}
-
-.app-alerts {
- overflow-y: auto;
- ul {
- padding-left: 0;
- margin-bottom: 0;
- }
- li {
- border-bottom: 1px solid #eee;
- list-style: none;
- padding: 5px;
- background-position: 14px 9px;
- background-repeat: no-repeat;
- .date-time {
- float: right;
- }
- p {
- margin-bottom: 2px;
- }
- .container-fluid {
- padding-left: 10px;
- padding-right: 10px;
- }
- .title {
- font-weight: normal;
- font-size: 13px;
- }
- .row-fluid [class*="span"] {
- min-height: 0px;
- }
- .date-time {
- color: #999;
- font-style: italic;
- font-size: small;
- text-align: right;
- }
- .message {
- font-size: 12px;
- color: #777;
- word-break: break-all;
- padding-right: 15px;
- }
- .serviceLink {
- padding-left: 7px;
- }
- }
- .icon-ok {
- color: #5AB400;
- }
- .icon-remove {
- color: #FF4B4B;
- }
- .icon-warning-sign {
- color: #FDB82F;
- }
- .icon-question-sign {
- color: #999;
- }
-}
-
-.flex-popup {
- .row {
- .table-row();
- }
-}
-
-.btn-area {
- .btn{
- display: inline-block;
- padding: 4px 14px;
- margin-bottom: 0;
- font-size: 14px;
- line-height: 20px;
- color: #333333;
- text-align: center;
- text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
- vertical-align: middle;
- cursor: pointer;
- background-color: #f5f5f5;
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
- background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
- background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
- background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
- background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
- background-repeat: repeat-x;
- border: 1px solid #bbbbbb;
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
- border-color: #e6e6e6 #e6e6e6 #bfbfbf;
- border-bottom-color: #a2a2a2;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
- filter: progid:dximagetransform.microsoft.gradient(enabled=false);
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
- }
- .btn:hover {
- color: #333333;
- text-decoration: none;
- background-color: #e6e6e6;
- background-position: 0 -15px;
- -webkit-transition: background-position 0.1s linear;
- -moz-transition: background-position 0.1s linear;
- -o-transition: background-position 0.1s linear;
- transition: background-position 0.1s linear;
- }
- .btn.active, .btn:active {
- background-color: #e6e6e6;
- background-color: #d9d9d9 \9;
- background-image: none;
- outline: 0;
- -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
- }
- .btn-success {
- color: #ffffff;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
- background-color: #5bb75b;
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
- background-image: -webkit-linear-gradient(top, #62c462, #51a351);
- background-image: -o-linear-gradient(top, #62c462, #51a351);
- background-image: linear-gradient(to bottom, #62c462, #51a351);
- background-image: -moz-linear-gradient(top, #62c462, #51a351);
- background-repeat: repeat-x;
- border-color: #51a351 #51a351 #387038;
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
- filter: progid:dximagetransform.microsoft.gradient(enabled=false);
- }
- .btn.btn-success:hover, .btn-success:active, .btn-success.active, .btn-success.disabled, .btn-success[disabled] {
- color: #ffffff;
- background-color: #51a351;
- }
-}
-
-.modal-header {
- padding: 9px 15px;
- border-bottom: 1px solid #eee;
-}
-.modal-title {
- line-height: 30px;
- font-size: 24px;
- font-family: inherit;
- font-weight: bold;
- color: inherit;
- text-rendering: optimizelegibility;
-}
-.modal-body{
- padding: 15px;
-}
-.modal-footer {
- margin-top: 0px;
- 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;
- -webkit-box-shadow: inset 0 1px 0 #ffffff;
- -moz-box-shadow: inset 0 1px 0 #ffffff;
- box-shadow: inset 0 1px 0 #ffffff;
-
- .btn-area();
-
-}
-.slider-app-title {
- font-style: italic;
- cursor: pointer;
-}
-
-.api-error {
- max-height: 403px;
- word-wrap: break-word;
- overflow: auto;
-}
-
-.dropdown-submenu {
- position:relative;
-}
-.dropdown-submenu>.dropdown-menu {
- top:0;
- left:-100%;
- margin-top:-6px;
- margin-left:-1px;
- -webkit-border-radius:6px 0 6px 6px;
- -moz-border-radius:6px 0 6px 6px;
- border-radius:6px 0 6px 6px;
-}
-.dropdown-submenu:hover>.dropdown-menu {
- display:block;
-}
-.dropdown-submenu>a:before {
- display:block;
- content:" ";
- float:left;
- width:0;
- height:0;
- border-color:transparent;
- border-style:solid;
- border-width:5px 5px 5px 0px;
- border-right-color:#cccccc;
- margin-top:5px;
- margin-left:-10px;
-}
-.dropdown-submenu:hover>a:after {
- border-left-color:#ffffff;
-}
\ No newline at end of file
+@import 'common.less';
+@import 'old-bootstrap.less';
+@import 'wizard.less';
+@import 'apps-table.less';
+@import 'app.less';
http://git-wip-us.apache.org/repos/asf/ambari/blob/9074f835/contrib/views/slider/src/main/resources/ui/app/styles/apps-table.less
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/styles/apps-table.less b/contrib/views/slider/src/main/resources/ui/app/styles/apps-table.less
new file mode 100644
index 0000000..928cf1f
--- /dev/null
+++ b/contrib/views/slider/src/main/resources/ui/app/styles/apps-table.less
@@ -0,0 +1,320 @@
+/**
+ * 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-apps-table {
+
+ #slider-table {
+ border-bottom: 1px solid #ddd;
+ border-left: 1px solid #ddd;
+ border-right: 1px solid #ddd;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ font-size: 13px\9;
+ table-layout: fixed;
+
+ th {
+ width: 17.5%!important;
+ }
+
+ select {
+ height: 23px;
+ margin-bottom: 10px;
+ font-size: 75%;
+ }
+
+ .label-row {
+ font-size: 0.9em;
+ th {
+ padding: 4px;
+ border-bottom: none !important;
+ }
+ .active-sort {
+ color: #555555;
+ text-decoration: none;
+ background-color: #e5e5e5;
+ -webkit-box-shadow: inset 0 5px 8px rgba(0, 0, 0, 0.100);
+ -moz-box-shadow: inset 0 5px 8px rgba(0, 0, 0, 0.100);
+ box-shadow: inset 0 5px 8px rgba(0, 0, 0, 0.100);
+ }
+ }
+
+ #filter-row {
+ th {
+ padding: 0 0 0 4px;
+ }
+ .active-filter {
+ color: #555555;
+ text-decoration: none;
+ background-color: #e5e5e5;
+ -webkit-box-shadow: inset 0 -5px 8px rgba(0, 0, 0, 0.05);
+ -moz-box-shadow: inset 0 -5px 8px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 -5px 8px rgba(0, 0, 0, 0.05);
+ }
+ input {
+ font-size: 12px;
+ height: 24px;
+ margin-bottom: 10px;
+ }
+ .filter-btn {
+ color: #999999;
+ font-size: 12px;
+ line-height: 14px;
+ padding-left: 6px;
+ text-align: left;
+ width: 100px;
+ .icon-filter {
+ color: #999999;
+ }
+ }
+ }
+ thead {
+ background: none repeat scroll 0 0 #F8F8F8;
+ border-top: 1px solid #ddd;
+ }
+ }
+ .page-bar {
+ border: 1px solid #E4E4E4;
+ color: #7B7B7B;
+ text-align: right;
+ font-size: 12px;
+ label {
+ font-size: 12px;
+ font-weight: normal;
+ }
+ div {
+ display: inline-block;
+ margin:0 10px;
+ }
+ .filtered-hosts-info, .selected-hosts-info {
+ float: left;
+ text-align: left;
+ margin-top: 8px;
+ margin-left: 17px;
+ }
+ .items-on-page {
+ label {
+ display:inline;
+ }
+ select {
+ margin-bottom: 4px;
+ margin-top: 4px;
+ width:70px;
+ font-size: 12px;
+ height: 27px;
+ padding: 4px 6px;
+ }
+ }
+ .paging_two_button {
+ a.paginate_disabled_next, a.paginate_disabled_previous {
+ color: gray;
+ &:hover {
+ color: gray;
+ text-decoration: none;
+ cursor: default;
+ }
+ }
+
+ a.paginate_next, a.paginate_previous {
+ &:hover {
+ text-decoration: none;
+ cursor: pointer;
+ }
+ }
+ a {
+ padding:0 5px;
+ }
+ }
+ }
+ .box-header {
+ margin-left: 0;
+ .btn-group {
+ float: left;
+ }
+ .btn.decommission {
+ margin-left: 5px;
+ }
+ .btn.add-host-button {
+ margin-bottom: 10px;
+ margin-top: -5px;
+ }
+ .hosts-actions {
+ margin-right: 10px;
+ }
+ .health-status-bar {
+ font-size: 0.9em;
+ margin-left: 0;
+ color: #b4b4b4;
+ a {
+ text-decoration: none;
+ }
+ .category-item:hover {
+ cursor: pointer;
+ a {
+ color: #ffffff;
+ }
+ }
+ .active {
+ a {
+ color: #ffffff;
+ }
+ background-color: #888888;
+ border-color: #888888;
+ -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.25);
+ -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.25);
+ box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.25);
+ }
+ .category-item.active:hover {
+ a {
+ color: #ffffff;
+ }
+ }
+ }
+ }
+
+ .filter-input-width{
+ width:68%;
+ font-weight: normal;
+ }
+ .table {
+
+ thead {
+ tr {
+ th {
+ border-bottom: none;
+ }
+ }
+ }
+
+ table-layout: fixed;
+ th {
+ border-top: none;
+ }
+ th, td {
+ padding-left: 4px;
+ padding-right: 4px;
+ border-left-width: 0;
+ }
+ input[type="checkbox"] {
+ margin: -2px 0 0 0;
+ }
+
+ .sorting_asc {
+ background: url(data:image/png;base64,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) no-repeat right 50
%;
+ }
+ .sorting_desc {
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAKQWlDQ1BJQ0MgUHJvZmlsZQAASA2dlndUU9kWh8+9N73QEiIgJfQaegkg0jtIFQRRiUmAUAKGhCZ2RAVGFBEpVmRUwAFHhyJjRRQLg4Ji1wnyEFDGwVFEReXdjGsJ7601896a/cdZ39nnt9fZZ+9917oAUPyCBMJ0WAGANKFYFO7rwVwSE8vE9wIYEAEOWAHA4WZmBEf4RALU/L09mZmoSMaz9u4ugGS72yy/UCZz1v9/kSI3QyQGAApF1TY8fiYX5QKUU7PFGTL/BMr0lSkyhjEyFqEJoqwi48SvbPan5iu7yZiXJuShGlnOGbw0noy7UN6aJeGjjAShXJgl4GejfAdlvVRJmgDl9yjT0/icTAAwFJlfzOcmoWyJMkUUGe6J8gIACJTEObxyDov5OWieAHimZ+SKBIlJYqYR15hp5ejIZvrxs1P5YjErlMNN4Yh4TM/0tAyOMBeAr2+WRQElWW2ZaJHtrRzt7VnW5mj5v9nfHn5T/T3IevtV8Sbsz55BjJ5Z32zsrC+9FgD2JFqbHbO+lVUAtG0GQOXhrE/vIADyBQC03pzzHoZsXpLE4gwnC4vs7GxzAZ9rLivoN/ufgm/Kv4Y595nL7vtWO6YXP4EjSRUzZUXlpqemS0TMzAwOl89k/fcQ/+PAOWnNycMsnJ/AF/GF6FVR6JQJhIlou4U8gViQLmQKhH/V4X8YNicHGX6daxRodV8AfYU5ULhJB8hvPQBDIwMkbj96An3rWxAxCsi+vGitka9zjzJ6/uf6Hwtcim7hTEEiU+b2DI9kciWiLBmj34RswQISkAd0oAo0gS4wAixgDRyAM3AD3iAAhIBIEAOWAy5IAmlABLJBPtgACkEx2AF2g2pwANSBetAEToI2cAZcBFfADXALDIBHQAqGwUswA
d6BaQiC8BAVokGqkBakD5lC1hAbWgh5Q0FQOBQDxUOJkBCSQPnQJqgYKoOqoUNQPfQjdBq6CF2D+qAH0CA0Bv0BfYQRmALTYQ3YALaA2bA7HAhHwsvgRHgVnAcXwNvhSrgWPg63whfhG/AALIVfwpMIQMgIA9FGWAgb8URCkFgkAREha5EipAKpRZqQDqQbuY1IkXHkAwaHoWGYGBbGGeOHWYzhYlZh1mJKMNWYY5hWTBfmNmYQM4H5gqVi1bGmWCesP3YJNhGbjS3EVmCPYFuwl7ED2GHsOxwOx8AZ4hxwfrgYXDJuNa4Etw/XjLuA68MN4SbxeLwq3hTvgg/Bc/BifCG+Cn8cfx7fjx/GvyeQCVoEa4IPIZYgJGwkVBAaCOcI/YQRwjRRgahPdCKGEHnEXGIpsY7YQbxJHCZOkxRJhiQXUiQpmbSBVElqIl0mPSa9IZPJOmRHchhZQF5PriSfIF8lD5I/UJQoJhRPShxFQtlOOUq5QHlAeUOlUg2obtRYqpi6nVpPvUR9Sn0vR5Mzl/OX48mtk6uRa5Xrl3slT5TXl3eXXy6fJ18hf0r+pvy4AlHBQMFTgaOwVqFG4bTCPYVJRZqilWKIYppiiWKD4jXFUSW8koGStxJPqUDpsNIlpSEaQtOledK4tE20Otpl2jAdRzek+9OT6cX0H+i99AllJWVb5SjlHOUa5bPKUgbCMGD4M1IZpYyTjLuMj/M05rnP48/bNq9pXv+8KZX5Km4qfJUilWaVAZWPqkxVb9UU1Z2qbapP1DBqJmphatlq+9Uuq43Pp893ns+dXzT/5PyH6rC6iXq4+mr1w+o96pMamhq+GhkaVRqXNMY1GZpumsma5ZrnNMe0aFoLtQRa5VrntV4wlZnuzFRmJbOLOaGtru2nLdE+pN2rPa1jqLNYZ6NOs84TXZIuWzdBt1y3U3dCT0svWC9fr1HvoT5Rn62fpL9Hv1t/ysDQINpgi0GbwaihiqG/YZ5ho+
FjI6qRq9Eqo1qjO8Y4Y7ZxivE+41smsImdSZJJjclNU9jU3lRgus+0zwxr5mgmNKs1u8eisNxZWaxG1qA5wzzIfKN5m/krCz2LWIudFt0WXyztLFMt6ywfWSlZBVhttOqw+sPaxJprXWN9x4Zq42Ozzqbd5rWtqS3fdr/tfTuaXbDdFrtOu8/2DvYi+yb7MQc9h3iHvQ732HR2KLuEfdUR6+jhuM7xjOMHJ3snsdNJp9+dWc4pzg3OowsMF/AX1C0YctFx4bgccpEuZC6MX3hwodRV25XjWuv6zE3Xjed2xG3E3dg92f24+ysPSw+RR4vHlKeT5xrPC16Il69XkVevt5L3Yu9q76c+Oj6JPo0+E752vqt9L/hh/QL9dvrd89fw5/rX+08EOASsCegKpARGBFYHPgsyCRIFdQTDwQHBu4IfL9JfJFzUFgJC/EN2hTwJNQxdFfpzGC4sNKwm7Hm4VXh+eHcELWJFREPEu0iPyNLIR4uNFksWd0bJR8VF1UdNRXtFl0VLl1gsWbPkRoxajCCmPRYfGxV7JHZyqffS3UuH4+ziCuPuLjNclrPs2nK15anLz66QX8FZcSoeGx8d3xD/iRPCqeVMrvRfuXflBNeTu4f7kufGK+eN8V34ZfyRBJeEsoTRRJfEXYljSa5JFUnjAk9BteB1sl/ygeSplJCUoykzqdGpzWmEtPi000IlYYqwK10zPSe9L8M0ozBDuspp1e5VE6JA0ZFMKHNZZruYjv5M9UiMJJslg1kLs2qy3mdHZZ/KUcwR5vTkmuRuyx3J88n7fjVmNXd1Z752/ob8wTXuaw6thdauXNu5Tnddwbrh9b7rj20gbUjZ8MtGy41lG99uit7UUaBRsL5gaLPv5sZCuUJR4b0tzlsObMVsFWzt3WazrWrblyJe0fViy+KK4k8l3JLr31l9V/ndzPaE7b2l9qX7d+B2CHfc3em681iZYlle2dCu4F2t5czyovK3u1fsvlZhW3F
gD2mPZI+0MqiyvUqvakfVp+qk6oEaj5rmvep7t+2d2sfb17/fbX/TAY0DxQc+HhQcvH/I91BrrUFtxWHc4azDz+ui6rq/Z39ff0TtSPGRz0eFR6XHwo911TvU1zeoN5Q2wo2SxrHjccdv/eD1Q3sTq+lQM6O5+AQ4ITnx4sf4H++eDDzZeYp9qukn/Z/2ttBailqh1tzWibakNml7THvf6YDTnR3OHS0/m/989Iz2mZqzymdLz5HOFZybOZ93fvJCxoXxi4kXhzpXdD66tOTSna6wrt7LgZevXvG5cqnbvfv8VZerZ645XTt9nX297Yb9jdYeu56WX+x+aem172296XCz/ZbjrY6+BX3n+l37L972un3ljv+dGwOLBvruLr57/17cPel93v3RB6kPXj/Mejj9aP1j7OOiJwpPKp6qP6391fjXZqm99Oyg12DPs4hnj4a4Qy//lfmvT8MFz6nPK0a0RupHrUfPjPmM3Xqx9MXwy4yX0+OFvyn+tveV0auffnf7vWdiycTwa9HrmT9K3qi+OfrW9m3nZOjk03dp76anit6rvj/2gf2h+2P0x5Hp7E/4T5WfjT93fAn88ngmbWbm3/eE8/syOll+AAAACXBIWXMAAAsTAAALEwEAmpwYAAABEUlEQVQ4Ee2SMUsDQRSE52U3Z3FpjIgQo+a0CCQehisimDa2Fmlt/EX+ATs7LWy0VFCwsLKJtWgRiYWFWAjmdsc9IU1c5Ehrtln2zbzv7Q4LzNYsgf+cgPgef3PL/ccn9IIgjWn1UlEQpsJ3Kxh8ffJurVI47XblcrJXTxay80qEj/6D6b2NFEgDQkFDyoYoF5XE1Q7une0XrOCDRRVctBPVl9SpVMhM1hqHBJpNPNfXceTr88JExDYa2F1exQ9I0cFcIPMLQKuNHaeb3LDMWCrJ63YiB3oOGJEIlELSwt5iKC8+UFbz3mxsrtVwHNdxpZ1rI8Lh1qacj7Wp9uGQ4ckZr0n+OTg3
3IG8Xyg3YBrjN2mnRpK2GkKGAAAAAElFTkSuQmCC) no-repeat right 50%;
+ }
+ .sorting {
+ background: url(data:image/png;base64,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) no-repeat right 50%;
+ }
+ div.view-wrapper {
+ input[type="checkbox"], .btn-group {
+ margin-bottom: 9px;
+ }
+ }
+
+ a.ui-icon-circle-close {
+ float: right;
+ opacity: 0.2;
+ padding: 1px 0;
+ position: relative;
+ right: 0px;
+ margin-top: 3px;
+ z-index: 10;
+ &:hover {
+ opacity: 0.7;
+ }
+ }
+ .notActive {
+ a.ui-icon-circle-close {
+ visibility: hidden;
+ }
+ }
+ }
+
+ .open-group > .dropdown-menu {
+ display: block;
+ }
+ .nav-pills li.disabled {
+ display: block;
+ margin: 2px 0;
+ padding: 8px 12px;
+ line-height: 14px;
+ }
+ .box-footer .footer-pagination {
+ float: right;
+ .nav {
+ margin-bottom: 0;
+ }
+ .dropdown {
+ margin-top: 3px;
+ }
+ .dropdown {
+ margin-top: 3px;
+ }
+ .dropdown select {
+ width: 60px;
+ }
+ .page-listing a {
+ line-height: 0;
+ border: none;
+ margin: 0 10px 0 0;
+ cursor: pointer;
+ color: #0088CC;
+ padding: 8px 0;
+ float: left;
+ text-decoration: underline;
+ }
+ .page-listing a:hover {
+ text-decoration: none;
+ }
+ .page-listing {
+ width: 100px;
+ .table {
+ th.name {
+ width: 300px;
+ a.filter-label {
+ width: 57px;
+ display: block;
+ float: left;
+ }
+ }
+ }
+ }
+ }
+ .host-components-expander {
+ .icon-caret-right, .icon-caret-down {
+ vertical-align: middle;
+ margin-right: 5px;
+ margin-bottom: 2px;
+ text-decoration: none;
+ }
+ }
+ .host-components {
+ display: none;
+ padding-left: 13px;
+ }
+ .sort-wrapper .column-name {
+ cursor: pointer;
+ padding-right: 18px;
+ }
+ .table-bordered {
+ border-left:1px solid #dddddd;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/9074f835/contrib/views/slider/src/main/resources/ui/app/styles/common.less
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/styles/common.less b/contrib/views/slider/src/main/resources/ui/app/styles/common.less
new file mode 100644
index 0000000..a61805d
--- /dev/null
+++ b/contrib/views/slider/src/main/resources/ui/app/styles/common.less
@@ -0,0 +1,102 @@
+/**
+ * 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.
+ */
+
+
+.table-row() {
+ margin: 10px 0;
+}
+
+html {
+ overflow-y: scroll;
+}
+.icon-minus-sign {
+ color: #FF4B4B;
+}
+.tooltip {
+ z-index: 1500;
+}
+.popover {
+ max-width: 800px;
+ &.bottom {
+ left: 5px;
+ }
+}
+
+.slider-name-popover {
+ max-width: 600px !important;
+ .row {
+ .table-row();
+ }
+}
+
+a {
+ cursor: pointer;
+}
+
+select {
+ background-color: #ffffff;
+ border: 1px solid #cccccc;
+ color: #555555;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+
+.well {
+ border-radius: 0px;
+ -webkit-border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+
+.nav-pills {
+ &>li {
+ &> a {
+ border-radius: 0px;
+ -webkit-border-radius: 0px;
+ -moz-border-radius: 0px;
+ }
+ &.active {
+ &> a, &> a:hover, &> a:focus {
+ background-color: #666666;
+
+ }
+ }
+ }
+}
+
+.slider-header {
+ overflow: hidden;
+ .box-header {
+ padding-top: 20px;
+ }
+}
+
+
+
+.modal {
+ overflow-y: hidden;
+}
+.modal-backdrop {
+ opacity: 0.8;
+}
+.modal-backdrop.in {
+ opacity:0;
+}
http://git-wip-us.apache.org/repos/asf/ambari/blob/9074f835/contrib/views/slider/src/main/resources/ui/app/styles/old-bootstrap.less
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/styles/old-bootstrap.less b/contrib/views/slider/src/main/resources/ui/app/styles/old-bootstrap.less
new file mode 100644
index 0000000..fde5768
--- /dev/null
+++ b/contrib/views/slider/src/main/resources/ui/app/styles/old-bootstrap.less
@@ -0,0 +1,164 @@
+/**
+ * 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.
+ */
+
+
+.btn-area {
+ .btn{
+ display: inline-block;
+ padding: 4px 14px;
+ margin-bottom: 0;
+ font-size: 14px;
+ line-height: 20px;
+ color: #333333;
+ text-align: center;
+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
+ vertical-align: middle;
+ cursor: pointer;
+ background-color: #f5f5f5;
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
+ background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
+ background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
+ background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
+ background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
+ background-repeat: repeat-x;
+ border: 1px solid #bbbbbb;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ border-color: #e6e6e6 #e6e6e6 #bfbfbf;
+ border-bottom-color: #a2a2a2;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ filter: progid:dximagetransform.microsoft.gradient(enabled=false);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+ }
+ .btn:hover {
+ color: #333333;
+ text-decoration: none;
+ background-color: #e6e6e6;
+ background-position: 0 -15px;
+ -webkit-transition: background-position 0.1s linear;
+ -moz-transition: background-position 0.1s linear;
+ -o-transition: background-position 0.1s linear;
+ transition: background-position 0.1s linear;
+ }
+ .btn.active, .btn:active {
+ background-color: #e6e6e6;
+ background-color: #d9d9d9 \9;
+ background-image: none;
+ outline: 0;
+ -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+ -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+ }
+ .btn-success {
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #5bb75b;
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
+ background-image: -webkit-linear-gradient(top, #62c462, #51a351);
+ background-image: -o-linear-gradient(top, #62c462, #51a351);
+ background-image: linear-gradient(to bottom, #62c462, #51a351);
+ background-image: -moz-linear-gradient(top, #62c462, #51a351);
+ background-repeat: repeat-x;
+ border-color: #51a351 #51a351 #387038;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
+ filter: progid:dximagetransform.microsoft.gradient(enabled=false);
+ }
+ .btn.btn-success:hover, .btn-success:active, .btn-success.active, .btn-success.disabled, .btn-success[disabled] {
+ color: #ffffff;
+ background-color: #51a351;
+ }
+}
+
+.modal-header {
+ padding: 9px 15px;
+ border-bottom: 1px solid #eee;
+}
+.modal-title {
+ line-height: 30px;
+ font-size: 24px;
+ font-family: inherit;
+ font-weight: bold;
+ color: inherit;
+ text-rendering: optimizelegibility;
+}
+.modal-body{
+ padding: 15px;
+}
+.modal-footer {
+ margin-top: 0px;
+ 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;
+ -webkit-box-shadow: inset 0 1px 0 #ffffff;
+ -moz-box-shadow: inset 0 1px 0 #ffffff;
+ box-shadow: inset 0 1px 0 #ffffff;
+
+ .btn-area();
+
+}
+.slider-app-title {
+ font-style: italic;
+ cursor: pointer;
+}
+
+.api-error {
+ max-height: 403px;
+ word-wrap: break-word;
+ overflow: auto;
+}
+
+.dropdown-submenu {
+ position:relative;
+}
+.dropdown-submenu>.dropdown-menu {
+ top:0;
+ left:-100%;
+ margin-top:-6px;
+ margin-left:-1px;
+ -webkit-border-radius:6px 0 6px 6px;
+ -moz-border-radius:6px 0 6px 6px;
+ border-radius:6px 0 6px 6px;
+}
+.dropdown-submenu:hover>.dropdown-menu {
+ display:block;
+}
+.dropdown-submenu>a:before {
+ display:block;
+ content:" ";
+ float:left;
+ width:0;
+ height:0;
+ border-color:transparent;
+ border-style:solid;
+ border-width:5px 5px 5px 0px;
+ border-right-color:#cccccc;
+ margin-top:5px;
+ margin-left:-10px;
+}
+.dropdown-submenu:hover>a:after {
+ border-left-color:#ffffff;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/9074f835/contrib/views/slider/src/main/resources/ui/app/styles/wizard.less
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/styles/wizard.less b/contrib/views/slider/src/main/resources/ui/app/styles/wizard.less
new file mode 100644
index 0000000..c531865
--- /dev/null
+++ b/contrib/views/slider/src/main/resources/ui/app/styles/wizard.less
@@ -0,0 +1,205 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@import-once 'common.less';
+
+#createAppWizard {
+ width: 80%;
+ margin: 0 0 auto;
+ left: 10%;
+ .wizard-nav {
+ padding-left: 0px;
+ }
+ h5 {
+ font-weight: bold;
+ }
+ .slider-modal-body {
+ height: 90%;
+ max-height: 90%;
+ .wizard-content{
+ min-height: 95%;
+ padding-bottom: 49px;
+ background-color: #ffffff;
+ }
+ .container-fluid {
+ height: 100%;
+ .row {
+ height: 100%;
+ }
+ .btn-area {
+ position: absolute;
+ right: 19px;
+ bottom: 19px;
+ left: 19px;
+ }
+ }
+ }
+ .next-btn {
+ margin-left: 5px;
+ }
+ #configs-text-area {
+ margin-bottom: 10px;
+ height: 225px;
+ }
+ #step4 {
+ ul {
+ list-style: none;
+ }
+ pre {
+ margin-left: 30px;
+ max-height: 124px;
+ }
+ }
+ #step2 {
+ .table-container {
+ max-height: 248px;
+ border: 1px solid #e3e3e3;
+ padding: 5px;
+ border-radius: 4px;
+ overflow: hidden;
+ .components-table {
+ width: 100%;
+ border-spacing: 10px;
+ border-collapse: separate;
+ input[type="text"]{
+ width: 100px;
+ }
+ }
+ margin-bottom: 30px;
+ }
+ }
+ #step1 {
+ select {
+ padding: 4px 0;
+ }
+ .row {
+ .table-row();
+ }
+ .app-types-alert {
+ margin-top: 20px;
+ }
+ }
+ .pseudo-label {
+ display: inline-block;
+ }
+ .app-wiz-configs {
+ .accordion-toggle {
+ display: block;
+ }
+ .panel-heading{
+ .icon{
+ width: 23px;
+ }
+ }
+ }
+}
+
+
+.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/9074f835/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 e8ccebb..1448760 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
@@ -16,34 +16,142 @@
* limitations under the License.
}}
<div id="step1">
- <h4>{{t wizard.step1.header}}</h4>
- <div class="row">
- <div class="col-xs-6">
- {{view view.availableTypesSelect contentBinding="controller.availableTypes" optionLabelPath="content.displayName" multiple="true" class="type-select"}}
+ <form role="form" class="form-horizontal">
+ <!-- Available Applications -->
+ <h3>{{t wizard.step1.header}}</h3>
+ <div class="form-group row">
+ <div class="col-xs-3">
+ <label class="control-label">{{t wizard.step1.appTypes}}</label>
+ </div>
+ <div class="col-xs-7">
+ {{view
+ Em.Select
+ contentBinding="controller.availableTypes"
+ optionLabelPath="content.displayName"
+ class="form-control type-select"
+ valueBinding="controller.selectedType"
+ }}
+ </div>
</div>
- <div class="col-xs-6">
- <div {{bind-attr class=":control-group controller.isNameError:error"}}>
- <label>{{t common.name}}: {{input id="app-name-input" valueBinding="controller.newAppName"}}</label>
+ <div class="form-group row">
+ <div class="col-xs-3">
+ <label class=" control-label">{{t wizard.step1.description}}</label>
</div>
- {{#if controller.isNameError}}
- <div class="alert alert-danger">
- {{controller.nameErrorMessage}}
+ <div class="col-xs-7">
+ <span class="pseudo-label control-label">{{controller.typeDescription}}</span>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="col-xs-3">
+ <div {{bind-attr class=":control-group controller.isNameError:error"}}>
+ <label class="control-label">{{t common.name}}</label>
</div>
- {{/if}}
- <h5>{{t wizard.step1.description}}:</h5>
- <p>
- {{controller.typeDescription}}
- </p>
+ </div>
+ <div class="col-xs-7">
+ {{input id="app-name-input" class="form-control" valueBinding="controller.newApp.name"}}
+ </div>
</div>
+ {{#if controller.isNameError}}
+ <div class="row">
+ <div class="col-xs-12 alert alert-danger">
+ {{controller.nameErrorMessage}}
+ </div>
+ </div>
+ {{/if}}
{{#if controller.isAppTypesError}}
- <div class="col-xs-12">
- <div class="alert alert-info app-types-alert">
- {{t wizard.step1.noAppTypesError}}
- </div>
+ <div class="row">
+ <div class="col-xs-12 alert alert-info app-types-alert">
+ {{t wizard.step1.noAppTypesError}}
+ </div>
</div>
{{/if}}
- </div>
- <div class="btn-area">
- <button class="btn btn-success pull-right next-btn" {{bind-attr disabled="controller.isSubmitDisabled"}} {{action submit target="controller"}}>{{t common.next}} →</button>
- </div>
-</div>
\ No newline at end of file
+ <!-- Available Applications end -->
+ <!-- Scheduler Options -->
+ <hr />
+ <div class="row">
+ <h3>{{t wizard.step1.schedulerOptions.label}}</h3>
+ </div>
+ <div class="row">
+ <div class="col-xs-3">
+ <label class="control-label">{{t wizard.step1.schedulerOptions.queueName}}</label>
+ </div>
+ <div class="col-xs-7">
+ {{input class="form-control" valueBinding="controller.newApp.queueName"}}
+ </div>
+ </div>
+ <!-- Scheduler Options end -->
+ <!-- YARN Labels -->
+ <hr />
+ <div class="row">
+ <h3>{{t wizard.step1.yarnLabels.label}}</h3>
+ </div>
+ <div class="row">
+ <div class="col-xs-3">
+ <label class="control-label">
+ {{view view.radioButton name="yarnLabel" selectionBinding="controller.newApp.selectedYarnLabel" value=0 class="radio-inline"}}
+ {{t wizard.step1.yarnLabels.options.anyHost}}
+ </label>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-xs-3">
+ <label class="control-label">
+ {{view view.radioButton name="yarnLabel" selectionBinding="controller.newApp.selectedYarnLabel" value=1 class="radio-inline"}}
+ {{t wizard.step1.yarnLabels.options.nonLabeledHost}}
+ </label>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-xs-3">
+ <label class="control-label">
+ {{view view.radioButton name="yarnLabel" selectionBinding="controller.newApp.selectedYarnLabel" value=2 class="radio-inline"}}
+ {{t wizard.step1.yarnLabels.options.specifyLabel}}
+ </label>
+ </div>
+ <div class="col-xs-7">
+ {{input type="text" class="form-control" disabledBinding="view.specLabelEnabled" valueBinding="controller.newApp.specialLabel"}}
+ </div>
+ </div>
+ <!-- YARN Labels end -->
+ <!-- Log Aggregation -->
+ <hr />
+ <div class="row">
+ <h3>{{t wizard.step1.logAggregation.label}}</h3>
+ </div>
+ <div class="row">
+ <div class="col-xs-3">
+ <label class="control-label">{{t wizard.step1.logAggregation.filePatterns.include}}</label>
+ </div>
+ <div class="col-xs-7">
+ {{input class="form-control" valueBinding="controller.newApp.includeFilePatterns"}}
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-xs-3">
+ <label class="control-label">{{t wizard.step1.logAggregation.filePatterns.exclude}}</label>
+ </div>
+ <div class="col-xs-7">
+ {{input class="form-control" valueBinding="controller.newApp.excludeFilePatterns"}}
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-xs-3">
+ <label class="control-label">{{t common.frequency}}</label>
+ </div>
+ <div class="col-xs-7">
+ <div class="input-group">
+ {{input class="form-control" valueBinding="controller.newApp.frequency"}}
+ <div class="input-group-addon">{{t common.minutes}}</div>
+ </div>
+ </div>
+ </div>
+ <!-- Log Aggregation end -->
+ <div class="btn-area">
+ <button
+ class="btn btn-success pull-right next-btn"
+ {{bind-attr disabled="controller.isSubmitDisabled"}}
+ {{action submit target="controller"}}>{{t common.next}} →
+ </button>
+ </div>
+ </form>
+</div>