update
This commit is contained in:
		
							parent
							
								
									37538b5112
								
							
						
					
					
						commit
						e9d72c6fc5
					
				| @ -56,4 +56,6 @@ | ||||
| 
 | ||||
| // Right Click Event
 | ||||
| 
 | ||||
| //= require contextmenu
 | ||||
| //= require contextmenu
 | ||||
| 
 | ||||
| //= require js/validator/validator.js
 | ||||
| @ -1,7 +1,8 @@ | ||||
| class NodeController < ApplicationController | ||||
|   def index | ||||
|     @hosts = Array.new | ||||
| 
 | ||||
|     @nodes = Node.all.order("id asc")  | ||||
|      | ||||
|     if get_hosts.blank? | ||||
|       flash[:danger] = "Check Server" | ||||
|     else | ||||
| @ -12,4 +13,21 @@ class NodeController < ApplicationController | ||||
|   def get_hosts | ||||
|     return ['2', 'aaa', 'bbb', 'ccc'] | ||||
|   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 | ||||
|  | ||||
							
								
								
									
										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 class="clearfix"></div> | ||||
|         <div class="row"> | ||||
|             <div class="col-md-12 col-sm-12 col-xs-12"> | ||||
|               <div class="x_panel"> | ||||
|                 <div class="x_title"> | ||||
|                   <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-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_title"> | ||||
|                     <h2>Hover rows <small>Try hovering over the rows</small></h2> | ||||
|                     <h2>Node List <small>Try hovering over the rows</small></h2> | ||||
|                     <ul class="nav navbar-right panel_toolbox"> | ||||
|                         <li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a> | ||||
|                         </li> | ||||
| @ -37,19 +113,25 @@ | ||||
|                             <tr> | ||||
|                                 <th>#</th> | ||||
|                                 <th>Host Name</th> | ||||
|                                 <th>IP Address</th> | ||||
|                                 <th>Status</th> | ||||
|                                 <th>UUID</th> | ||||
|                                 <th>Host IP</th> | ||||
|                                 <th>Host Port</th> | ||||
|                                 <th>User Name</th> | ||||
|                                 <th>User Password</th> | ||||
|                                 <th>Date</th> | ||||
|                                 <th></th> | ||||
|                             </tr> | ||||
|                         </thead> | ||||
|                         <tbody> | ||||
|                             <%@hosts.each do |t|%> | ||||
|                             <%@nodes.each do |t|%> | ||||
|                             <tr> | ||||
|                                 <th scope="row">1</th> | ||||
|                                 <td>Mark</td> | ||||
|                                 <td>Otto</td> | ||||
|                                 <td>@mdo</td> | ||||
|                                 <td>tmp</td> | ||||
|                                 <th scope="row"><%=t.id%></th> | ||||
|                                 <td><%=t.host_name%></td> | ||||
|                                 <td><%=t.host_ip%></td> | ||||
|                                 <td><%=t.host_port%></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> | ||||
|                             <%end%> | ||||
|                         </tbody> | ||||
| @ -60,3 +142,45 @@ | ||||
|     </div> | ||||
| </div> | ||||
| <!-- /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 | ||||
|   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. | ||||
| 
 | ||||
| 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| | ||||
|     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