UI changes for flex down

Minor changes for the flex down component to support profile flex down.


Project: http://git-wip-us.apache.org/repos/asf/incubator-myriad/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-myriad/commit/e1841949
Tree: http://git-wip-us.apache.org/repos/asf/incubator-myriad/tree/e1841949
Diff: http://git-wip-us.apache.org/repos/asf/incubator-myriad/diff/e1841949

Branch: refs/heads/master
Commit: e1841949196f62e861ac0a7e6f39a77d3f55fcdd
Parents: 34e3958
Author: Aashreya Ravi Shankar <ashan...@mapr.com>
Authored: Wed Oct 14 13:49:38 2015 -0700
Committer: Santosh Marella <mare...@gmail.com>
Committed: Thu Oct 15 12:56:47 2015 -0700

----------------------------------------------------------------------
 .../webapp/js/components/FlexDownComponent.js   |   42 +-
 .../webapp/js/components/FlexUpComponent.js     |   24 +-
 .../main/resources/webapp/public/js/myriad.js   | 1767 +++++++++++-------
 3 files changed, 1100 insertions(+), 733 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-myriad/blob/e1841949/myriad-scheduler/src/main/resources/webapp/js/components/FlexDownComponent.js
----------------------------------------------------------------------
diff --git 
a/myriad-scheduler/src/main/resources/webapp/js/components/FlexDownComponent.js 
b/myriad-scheduler/src/main/resources/webapp/js/components/FlexDownComponent.js
index bad917c..caf8428 100644
--- 
a/myriad-scheduler/src/main/resources/webapp/js/components/FlexDownComponent.js
+++ 
b/myriad-scheduler/src/main/resources/webapp/js/components/FlexDownComponent.js
@@ -14,12 +14,14 @@ var request = require('superagent');
 var FlexDownModal = React.createClass({
 
   render: function() {
+
     return (
       <Modal {...this.props} bsStyle="primary" title='Flex Down Confirmation' 
animation>
       <Row>
         <Col mdOffset={3}>
           <div className="modal-body">
-            Flex Down <Badge>{this.props.instances}</Badge> instance(s)?
+            Flex Down <Badge>{this.props.instances}</Badge> instance(s)
+            Profile: <Badge>{this.props.profile}</Badge> ?
           </div>
         </Col>
       </Row>
@@ -28,7 +30,7 @@ var FlexDownModal = React.createClass({
           <Button bsStyle="success" onClick={
             function(){
               this.props.onRequestHide();
-              this.props.onFlexDown(this.props.instances);
+              this.props.onFlexDown(this.props.instances, this.props.profile);
               }.bind(this) }
           >Flex Down</Button>
         </div>
@@ -44,7 +46,8 @@ var FlexDownComponent = React.createClass({
 
 
   getInitialState: function () {
-    return( {numInstances:0});
+    return( {selectedProfile: null,
+                 numInstances:0});
   },
 
   handleInstanceChange: function() {
@@ -52,15 +55,21 @@ var FlexDownComponent = React.createClass({
     this.setState({numInstances: instances});
   },
 
+  handleProfileChange: function() {
+      var profile = this.refs.profile.getValue();
+      this.setState({selectedProfile: profile});
+   },
+
   componentDidMount: function() {
+    this.handleProfileChange();
     this.handleInstanceChange();
   },
 
-  onRequestFlexDown: function(instances, size) {
-    console.log( "flexing down: " + instances);
+  onRequestFlexDown: function(instances, profile, constraint) {
+    console.log( "flexing down: " + instances + " profile: " +  profile);
     request.put('/api/cluster/flexdown')
     .set('Content-Type', 'application/json')
-    .send({ "instances": instances})
+    .send({ "profile": profile, "instances": instances})
     .end(function(err, res){
            console.log("Result from api/cluster/flexdown");
            console.log(res);
@@ -77,11 +86,29 @@ var FlexDownComponent = React.createClass({
 
   render: function () {
 
+   var options = [];
+   var keys = [];
+   for( var key in this.props.profiles ) {
+       if( this.props.profiles.hasOwnProperty(key) ) {
+       keys.push(key);
+       }
+   }
+   for( var ii = 0; ii < keys.length; ii++) {
+       var key = keys[ii];
+       var txt = key;
+       options.push( <option key={key} value={key}>{txt}</option> );
+   }
+
     //TODO: get current number of instances available to flex down from the 
status to set max flex down value
     return(
       <div>
         <Row>
-          <Col md={4} mdOffset={1} >
+        <Col md={6}>
+                    <Input type="select" label='Profile' ref="profile" 
onChange={this.handleProfileChange} >
+                      { options }
+                    </Input>
+         </Col>
+          <Col md={4} >
             <Input label="Instances" help="Enter the number of instances to 
flex down." wrapperClassName="wrapper">
                   <input type="number" size="3" defaultValue="1" min="1" 
max="999" step="1"
                           ref="instances"
@@ -92,6 +119,7 @@ var FlexDownComponent = React.createClass({
         <Row>
           <Col md={2} mdOffset={5} >
             <ModalTrigger modal={<FlexDownModal
+                                    profile={this.state.selectedProfile}
                                     instances={this.state.numInstances}
                                     onFlexDown={this.onRequestFlexDown} />} >
               <Button bsStyle="primary" bsSize="large">Flex Down</Button>

http://git-wip-us.apache.org/repos/asf/incubator-myriad/blob/e1841949/myriad-scheduler/src/main/resources/webapp/js/components/FlexUpComponent.js
----------------------------------------------------------------------
diff --git 
a/myriad-scheduler/src/main/resources/webapp/js/components/FlexUpComponent.js 
b/myriad-scheduler/src/main/resources/webapp/js/components/FlexUpComponent.js
index f3f09b2..3ced915 100644
--- 
a/myriad-scheduler/src/main/resources/webapp/js/components/FlexUpComponent.js
+++ 
b/myriad-scheduler/src/main/resources/webapp/js/components/FlexUpComponent.js
@@ -21,7 +21,7 @@ var FlexUpModal = React.createClass({
         <Col mdOffset={3}>
           <div className="modal-body">
             Flex up <Badge>{this.props.instances}</Badge> instance(s)
-             size: <Badge>{this.props.size}</Badge> ?
+             Profile: <Badge>{this.props.profile}</Badge> ?
           </div>
         </Col>
       </Row>
@@ -30,7 +30,7 @@ var FlexUpModal = React.createClass({
           <Button bsStyle="success" onClick={
             function(){
               this.props.onRequestHide();
-              this.props.onFlexUp(this.props.instances, this.props.size);
+              this.props.onFlexUp(this.props.instances, this.props.profile);
               }.bind(this) }
           >Flex Up</Button>
         </div>
@@ -46,7 +46,7 @@ var FlexUpComponent = React.createClass({
   displayName: "FlexUpComponent",
 
   getInitialState: function () {
-    return( {selectedSize: null,
+    return( {selectedSProfile: null,
              numInstances:0});
   },
 
@@ -55,21 +55,21 @@ var FlexUpComponent = React.createClass({
     this.setState({numInstances: instances});
   },
 
-  handleSizeChange: function() {
-    var size = this.refs.size.getValue();
-    this.setState({selectedSize: size});
+  handleProfileChange: function() {
+    var profile = this.refs.profile.getValue();
+    this.setState({selectedProfile: profile});
  },
 
   componentDidMount: function() {
-    this.handleSizeChange();
+    this.handleProfileChange();
     this.handleInstanceChange();
   },
 
-  onRequestFlexUp: function(instances, size) {
-    console.log( "flexing up: " + instances + " size " + size);
+  onRequestFlexUp: function(instances, profile) {
+    console.log( "flexing up: " + instances + " Profile " + profile);
     request.put('/api/cluster/flexup')
     .set('Content-Type', 'application/json')
-    .send({ "profile": size, "instances": instances})
+    .send({ "profile": profile, "instances": instances})
     .end(function(err, res){
            if (!err) {
              console.log("flexup successful!");
@@ -100,7 +100,7 @@ var FlexUpComponent = React.createClass({
       <div className="modal-container">
         <Row>
           <Col md={6}>
-            <Input type="select" label='Profile' ref="size" 
onChange={this.handleSizeChange} >
+            <Input type="select" label='Profile' ref="profile" 
onChange={this.handleProfileChange} >
               { options }
             </Input>
           </Col>
@@ -119,7 +119,7 @@ var FlexUpComponent = React.createClass({
         <Row>
           <Col md={2} mdOffset={5} >
             <ModalTrigger modal={<FlexUpModal
-                                    size={this.state.selectedSize}
+                                    profile={this.state.selectedProfile}
                                     instances={this.state.numInstances}
                                     onFlexUp={this.onRequestFlexUp} />} >
               <Button bsStyle="primary" bsSize="large">Flex Up</Button>

Reply via email to