update
This commit is contained in:
		
							parent
							
								
									37538b5112
								
							
						
					
					
						commit
						e9d72c6fc5
					
				| @ -57,3 +57,5 @@ | |||||||
| // Right Click Event
 | // Right Click Event
 | ||||||
| 
 | 
 | ||||||
| //= require contextmenu
 | //= require contextmenu
 | ||||||
|  | 
 | ||||||
|  | //= require js/validator/validator.js
 | ||||||
| @ -1,6 +1,7 @@ | |||||||
| class NodeController < ApplicationController | class NodeController < ApplicationController | ||||||
|   def index |   def index | ||||||
|     @hosts = Array.new |     @hosts = Array.new | ||||||
|  |     @nodes = Node.all.order("id asc")  | ||||||
|      |      | ||||||
|     if get_hosts.blank? |     if get_hosts.blank? | ||||||
|       flash[:danger] = "Check Server" |       flash[:danger] = "Check Server" | ||||||
| @ -12,4 +13,21 @@ class NodeController < ApplicationController | |||||||
|   def get_hosts |   def get_hosts | ||||||
|     return ['2', 'aaa', 'bbb', 'ccc'] |     return ['2', 'aaa', 'bbb', 'ccc'] | ||||||
|   end |   end | ||||||
|  |    | ||||||
|  |   def node_add | ||||||
|  |     new_node = Node.new	 | ||||||
|  |     new_node.host_name = params[:host_name] | ||||||
|  |     new_node.host_ip = params[:host_ip] | ||||||
|  |     new_node.host_port = params[:host_port] | ||||||
|  |     new_node.user_name = params[:user_name] | ||||||
|  |     new_node.user_password = params[:user_password] | ||||||
|  |     new_node.save | ||||||
|  |     redirect_to '/node/index' | ||||||
|  |   end | ||||||
|  |    | ||||||
|  |   def node_delete | ||||||
|  |     one_node = Node.find(params[:node_id]) | ||||||
|  |     one_node.destroy | ||||||
|  |     redirect_to '/node/index' | ||||||
|  |   end | ||||||
| end | end | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								app/models/node.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								app/models/node.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | class Node < ActiveRecord::Base | ||||||
|  | end | ||||||
| @ -8,12 +8,88 @@ | |||||||
|     </div> |     </div> | ||||||
| 
 | 
 | ||||||
|     <div class="clearfix"></div> |     <div class="clearfix"></div> | ||||||
| 
 |  | ||||||
|         <div class="row"> |         <div class="row"> | ||||||
|         <div class="col-md-6 col-sm-6 col-xs-12"> |             <div class="col-md-12 col-sm-12 col-xs-12"> | ||||||
|               <div class="x_panel"> |               <div class="x_panel"> | ||||||
|                 <div class="x_title"> |                 <div class="x_title"> | ||||||
|                     <h2>Hover rows <small>Try hovering over the rows</small></h2> |                   <h2>Add Node</h2> | ||||||
|  |                   <ul class="nav navbar-right panel_toolbox"> | ||||||
|  |                     <li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a> | ||||||
|  |                     </li> | ||||||
|  |                     <li class="dropdown"> | ||||||
|  |                       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-wrench"></i></a> | ||||||
|  |                       <ul class="dropdown-menu" role="menu"> | ||||||
|  |                         <li><a href="#">Settings 1</a> | ||||||
|  |                         </li> | ||||||
|  |                         <li><a href="#">Settings 2</a> | ||||||
|  |                         </li> | ||||||
|  |                       </ul> | ||||||
|  |                     </li> | ||||||
|  |                     <li><a class="close-link"><i class="fa fa-close"></i></a> | ||||||
|  |                     </li> | ||||||
|  |                   </ul> | ||||||
|  |                   <div class="clearfix"></div> | ||||||
|  |                 </div> | ||||||
|  |                 <div class="x_content"> | ||||||
|  | 
 | ||||||
|  |                   <form class="form-horizontal form-label-left" action="/node/add" method="post" novalidate> | ||||||
|  |                     <span class="section">Node Info</span> | ||||||
|  | 
 | ||||||
|  |                     <div class="item form-group"> | ||||||
|  |                       <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Host Name <span class="required">*</span> | ||||||
|  |                       </label> | ||||||
|  |                       <div class="col-md-6 col-sm-6 col-xs-12"> | ||||||
|  |                         <input id="name" class="form-control col-md-7 col-xs-12" data-validate-length-range="10" data-validate-words="1" name="host_name" placeholder="Host Name" required="required" type="text"> | ||||||
|  |                       </div> | ||||||
|  |                     </div> | ||||||
|  |                     | ||||||
|  |                     <div class="item form-group"> | ||||||
|  |                       <label class="control-label col-md-3 col-sm-3 col-xs-12" for="ip">Host IP <span class="required">*</span> | ||||||
|  |                       </label> | ||||||
|  |                       <div class="col-md-6 col-sm-6 col-xs-12"> | ||||||
|  |                         <input id="ip" class="form-control col-md-7 col-xs-12" data-validate-length-range="10" data-validate-words="1" name="host_ip" placeholder="127.0.0.1" required="required" type="text"> | ||||||
|  |                       </div> | ||||||
|  |                     </div> | ||||||
|  |                     | ||||||
|  |                     <div class="item form-group"> | ||||||
|  |                       <label class="control-label col-md-3 col-sm-3 col-xs-12" for="number">Host Port <span class="required">*</span> | ||||||
|  |                       </label> | ||||||
|  |                       <div class="col-md-6 col-sm-6 col-xs-12"> | ||||||
|  |                         <input type="number" id="number" name="host_port" required="required" data-validate-length-range="4" data-validate-minmax="0,9999" placeholder="0~9999" class="form-control col-md-7 col-xs-12"> | ||||||
|  |                       </div> | ||||||
|  |                     </div> | ||||||
|  |                     | ||||||
|  |                     <div class="item form-group"> | ||||||
|  |                       <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">User Name <span class="required">*</span> | ||||||
|  |                       </label> | ||||||
|  |                       <div class="col-md-6 col-sm-6 col-xs-12"> | ||||||
|  |                         <input id="occupation" type="text" name="user_name" required="required" data-validate-length-range="5,20" class="form-control col-md-7 col-xs-12"> | ||||||
|  |                       </div> | ||||||
|  |                     </div> | ||||||
|  |                     <div class="item form-group"> | ||||||
|  |                       <label for="password" class="control-label col-md-3">User Password  <span class="required">*</span></label> | ||||||
|  |                       <div class="col-md-6 col-sm-6 col-xs-12"> | ||||||
|  |                         <input id="password" type="password" name="user_password" data-validate-length="1,10" class="form-control col-md-7 col-xs-12" required="required"> | ||||||
|  |                       </div> | ||||||
|  |                     </div> | ||||||
|  |                     <div class="ln_solid"></div> | ||||||
|  |                     <div class="form-group"> | ||||||
|  |                       <div class="col-md-6 col-md-offset-3"> | ||||||
|  |                         <button type="submit" class="btn btn-primary">Cancel</button> | ||||||
|  |                         <button id="send" type="submit" class="btn btn-success">Add</button> | ||||||
|  |                       </div> | ||||||
|  |                     </div> | ||||||
|  |                   </form> | ||||||
|  |                 </div> | ||||||
|  |               </div> | ||||||
|  |             </div> | ||||||
|  |           </div> | ||||||
|  |            | ||||||
|  |     <div class="row"> | ||||||
|  |         <div class="col-md-12 col-sm-12 col-xs-12"> | ||||||
|  |             <div class="x_panel"> | ||||||
|  |                 <div class="x_title"> | ||||||
|  |                     <h2>Node List <small>Try hovering over the rows</small></h2> | ||||||
|                     <ul class="nav navbar-right panel_toolbox"> |                     <ul class="nav navbar-right panel_toolbox"> | ||||||
|                         <li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a> |                         <li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a> | ||||||
|                         </li> |                         </li> | ||||||
| @ -37,19 +113,25 @@ | |||||||
|                             <tr> |                             <tr> | ||||||
|                                 <th>#</th> |                                 <th>#</th> | ||||||
|                                 <th>Host Name</th> |                                 <th>Host Name</th> | ||||||
|                                 <th>IP Address</th> |                                 <th>Host IP</th> | ||||||
|                                 <th>Status</th> |                                 <th>Host Port</th> | ||||||
|                                 <th>UUID</th> |                                 <th>User Name</th> | ||||||
|  |                                 <th>User Password</th> | ||||||
|  |                                 <th>Date</th> | ||||||
|  |                                 <th></th> | ||||||
|                             </tr> |                             </tr> | ||||||
|                         </thead> |                         </thead> | ||||||
|                         <tbody> |                         <tbody> | ||||||
|                             <%@hosts.each do |t|%> |                             <%@nodes.each do |t|%> | ||||||
|                             <tr> |                             <tr> | ||||||
|                                 <th scope="row">1</th> |                                 <th scope="row"><%=t.id%></th> | ||||||
|                                 <td>Mark</td> |                                 <td><%=t.host_name%></td> | ||||||
|                                 <td>Otto</td> |                                 <td><%=t.host_ip%></td> | ||||||
|                                 <td>@mdo</td> |                                 <td><%=t.host_port%></td> | ||||||
|                                 <td>tmp</td> |                                 <td><%=t.user_name%></td> | ||||||
|  |                                 <td><%=t.user_password%></td> | ||||||
|  |                                 <td><%=t.created_at%></td> | ||||||
|  |                                 <td><a href="/node/delete/<%=t.id%>"><i class="fa fa-trash"></i></a></td> | ||||||
|                             </tr> |                             </tr> | ||||||
|                             <%end%> |                             <%end%> | ||||||
|                         </tbody> |                         </tbody> | ||||||
| @ -60,3 +142,45 @@ | |||||||
|     </div> |     </div> | ||||||
| </div> | </div> | ||||||
| <!-- /page content --> | <!-- /page content --> | ||||||
|  | <script> | ||||||
|  |     // initialize the validator function | ||||||
|  |     validator.message['date'] = 'not a real date'; | ||||||
|  | 
 | ||||||
|  |     // validate a field on "blur" event, a 'select' on 'change' event & a '.reuired' classed multifield on 'keyup': | ||||||
|  |     $('form') | ||||||
|  |       .on('blur', 'input[required], input.optional, select.required', validator.checkField) | ||||||
|  |       .on('change', 'select.required', validator.checkField) | ||||||
|  |       .on('keypress', 'input[required][pattern]', validator.keypress); | ||||||
|  | 
 | ||||||
|  |     $('.multi.required') | ||||||
|  |       .on('keyup blur', 'input', function() { | ||||||
|  |         validator.checkField.apply($(this).siblings().last()[0]); | ||||||
|  |       }); | ||||||
|  | 
 | ||||||
|  |     // bind the validation to the form submit event | ||||||
|  |     //$('#send').click('submit');//.prop('disabled', true); | ||||||
|  | 
 | ||||||
|  |     $('form').submit(function(e) { | ||||||
|  |       e.preventDefault(); | ||||||
|  |       var submit = true; | ||||||
|  |       // evaluate the form using generic validaing | ||||||
|  |       if (!validator.checkAll($(this))) { | ||||||
|  |         submit = false; | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       if (submit) | ||||||
|  |         this.submit(); | ||||||
|  |       return false; | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     /* FOR DEMO ONLY */ | ||||||
|  |     $('#vfields').change(function() { | ||||||
|  |       $('form').toggleClass('mode2'); | ||||||
|  |     }).prop('checked', false); | ||||||
|  | 
 | ||||||
|  |     $('#alerts').change(function() { | ||||||
|  |       validator.defaults.alerts = (this.checked) ? false : true; | ||||||
|  |       if (this.checked) | ||||||
|  |         $('form .alert').remove(); | ||||||
|  |     }).prop('checked', false); | ||||||
|  |   </script> | ||||||
| @ -28,6 +28,8 @@ Rails.application.routes.draw do | |||||||
| 
 | 
 | ||||||
|   #Node |   #Node | ||||||
|   get 'node/index' => 'node#index' |   get 'node/index' => 'node#index' | ||||||
|  |   post 'node/add' => "node#node_add" | ||||||
|  |   get 'node/delete/:node_id' => "node#node_delete" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								db/migrate/20160920111650_create_nodes.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								db/migrate/20160920111650_create_nodes.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | class CreateNodes < ActiveRecord::Migration | ||||||
|  |   def change | ||||||
|  |     create_table :nodes do |t| | ||||||
|  | 
 | ||||||
|  |       t.string :host_name | ||||||
|  |       t.string :host_ip | ||||||
|  |       t.integer :host_port | ||||||
|  |       t.string :user_name | ||||||
|  |       t.string :user_password | ||||||
|  |        | ||||||
|  |       t.timestamps null: false | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||
							
								
								
									
										12
									
								
								db/schema.rb
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								db/schema.rb
									
									
									
									
									
								
							| @ -11,7 +11,17 @@ | |||||||
| # | # | ||||||
| # It's strongly recommended that you check this file into your version control system. | # It's strongly recommended that you check this file into your version control system. | ||||||
| 
 | 
 | ||||||
| ActiveRecord::Schema.define(version: 20160819061449) do | ActiveRecord::Schema.define(version: 20160920111650) do | ||||||
|  | 
 | ||||||
|  |   create_table "nodes", force: :cascade do |t| | ||||||
|  |     t.string   "host_name" | ||||||
|  |     t.string   "host_ip" | ||||||
|  |     t.integer  "host_port" | ||||||
|  |     t.string   "user_name" | ||||||
|  |     t.string   "user_password" | ||||||
|  |     t.datetime "created_at",    null: false | ||||||
|  |     t.datetime "updated_at",    null: false | ||||||
|  |   end | ||||||
| 
 | 
 | ||||||
|   create_table "users", force: :cascade do |t| |   create_table "users", force: :cascade do |t| | ||||||
|     t.string   "email",                  default: "", null: false |     t.string   "email",                  default: "", null: false | ||||||
|  | |||||||
							
								
								
									
										11
									
								
								test/fixtures/nodes.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								test/fixtures/nodes.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | |||||||
|  | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html | ||||||
|  | 
 | ||||||
|  | # This model initially had no columns defined.  If you add columns to the | ||||||
|  | # model remove the '{}' from the fixture names and add the columns immediately | ||||||
|  | # below each fixture, per the syntax in the comments below | ||||||
|  | # | ||||||
|  | one: {} | ||||||
|  | # column: value | ||||||
|  | # | ||||||
|  | two: {} | ||||||
|  | #  column: value | ||||||
							
								
								
									
										7
									
								
								test/models/node_test.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								test/models/node_test.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | |||||||
|  | require 'test_helper' | ||||||
|  | 
 | ||||||
|  | class NodeTest < ActiveSupport::TestCase | ||||||
|  |   # test "the truth" do | ||||||
|  |   #   assert true | ||||||
|  |   # end | ||||||
|  | end | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user