commit
6a9c003882
File diff suppressed because one or more lines are too long
|
@ -1,9 +1,12 @@
|
|||
# Because of strong parameters in Rails 4 and the fact that our Devise
|
||||
# registration form has non-standard user fields (User#name), we need to
|
||||
# override the Devise::RegistrationsController
|
||||
# override the Devise::RegistrationsController. If we didn't do this, we would
|
||||
# not be able to save fields such as 'name' when a user registers for the site.
|
||||
class RegistrationsController < Devise::RegistrationsController
|
||||
before_filter :update_sanitized_params, if: :devise_controller?
|
||||
|
||||
#See: http://stackoverflow.com/questions/17384289
|
||||
# /unpermitted-parameters-adding-new-fields-to-devise-in-rails-4-0
|
||||
def update_sanitized_params
|
||||
devise_parameter_sanitizer.for(:sign_up) do |user|
|
||||
user.permit(:name, :email, :password, :password_confirmation)
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
# FarmbotDevice models all data related to an actual FarmBot in the real world.
|
||||
# This is useful for caching things like SkyNey IDs, owner users, work logs, etc
|
||||
class FarmbotDevice
|
||||
include Mongoid::Document
|
||||
belongs_to :user
|
||||
end
|
|
@ -1,43 +1,27 @@
|
|||
class User
|
||||
include Mongoid::Document
|
||||
# Include default devise modules. Others available are:
|
||||
# :confirmable, :lockable, :timeoutable and :omniauthable
|
||||
devise :database_authenticatable, :registerable,
|
||||
:recoverable, :rememberable, :trackable, :validatable
|
||||
|
||||
## Database authenticatable
|
||||
field :email, type: String, default: ""
|
||||
has_many :farmbot_devices, dependent: :destroy
|
||||
|
||||
field :name, type: String
|
||||
validates_uniqueness_of :name
|
||||
validates_presence_of :name
|
||||
|
||||
field :email, type: String, default: ""
|
||||
validates_uniqueness_of :email
|
||||
validates_presence_of :email
|
||||
|
||||
# BEGIN DEVISE CRAP ==========================================================
|
||||
devise :database_authenticatable, :registerable, :recoverable, :rememberable,
|
||||
:trackable, :validatable #, :omniauthable
|
||||
field :encrypted_password, type: String, default: ""
|
||||
|
||||
## Recoverable
|
||||
field :reset_password_token, type: String
|
||||
field :reset_password_sent_at, type: Time
|
||||
|
||||
## Rememberable
|
||||
field :remember_created_at, type: Time
|
||||
|
||||
## Trackable
|
||||
field :sign_in_count, type: Integer, default: 0
|
||||
field :current_sign_in_at, type: Time
|
||||
field :last_sign_in_at, type: Time
|
||||
field :current_sign_in_ip, type: String
|
||||
field :last_sign_in_ip, type: String
|
||||
|
||||
## Confirmable
|
||||
# field :confirmation_token, type: String
|
||||
# field :confirmed_at, type: Time
|
||||
# field :confirmation_sent_at, type: Time
|
||||
# field :unconfirmed_email, type: String # Only if using reconfirmable
|
||||
|
||||
## Lockable
|
||||
# field :failed_attempts, type: Integer, default: 0
|
||||
# Only if lock strategy is :failed_attempts
|
||||
# field :unlock_token, type: String
|
||||
# Only if unlock strategy is :email or :both
|
||||
# field :locked_at, type: Time
|
||||
|
||||
# The username.
|
||||
field :name, type: String
|
||||
validates_uniqueness_of :name
|
||||
validates_presence_of :name
|
||||
# END DEVISE CRAP ============================================================
|
||||
end
|
||||
|
|
|
@ -1,256 +1,264 @@
|
|||
<ul class="button-group even-4">
|
||||
<li><a href="#" class="button secondary"> Wed, Aug 21, 2:36 PM <span>74</span></a></li>
|
||||
<li><a href="#" class="button secondary"> $4.12/day <span>Water </span></a></li>
|
||||
<li><a href="#" class="button secondary"> $0.73/day <span>Pesticide </span></a></li>
|
||||
<li><a href="#" class="button secondary"> $1.19/day <span>Fertilizer </span></a></li>
|
||||
<li><a href="#" class="button secondary"> Wed, Aug 21, 2:36 PM <span>74</span></a>
|
||||
</li>
|
||||
<li><a href="#" class="button secondary"> $4.12/day <span>Water </span></a>
|
||||
</li>
|
||||
<li><a href="#" class="button secondary"> $0.73/day <span>Pesticide </span></a>
|
||||
</li>
|
||||
<li><a href="#" class="button secondary"> $1.19/day <span>Fertilizer </span></a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="container">
|
||||
<!-- Side Bar -->
|
||||
<div class="large-6 columns">
|
||||
<div class="panel clearfix">
|
||||
<div class="large-4 columns">
|
||||
<h6>Farmbot</h6>
|
||||
<dl class="accordion" data-accordion="">
|
||||
<dd class="">
|
||||
<a href="#panel1">Genesis Tracks</a>
|
||||
<div id="panel1" class="content">
|
||||
<p>Model: Genesis Tracks v2.6</p>
|
||||
<p>Length: 36 meters</p>
|
||||
<p>Width: 2 meters</p>
|
||||
<p>Height: 18 centimeters</p>
|
||||
<p>Installation date: 9/6/2013</p>
|
||||
</div>
|
||||
</dd>
|
||||
<dd>
|
||||
<a href="#panel2">Genesis Gantry</a>
|
||||
<div id="panel2" class="content">
|
||||
Panel 2. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
<dd>
|
||||
<a href="#panel3">Richmond Cross Slide</a>
|
||||
<div id="panel3" class="content">
|
||||
Panel 3. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
<dd class="">
|
||||
<a href="#panel4">Custom Tool Mount</a>
|
||||
<div id="panel4" class="content">
|
||||
Panel 3. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<!-- end large-4 -->
|
||||
<div class="large-4 columns">
|
||||
<h6>Tools</h6>
|
||||
<dl class="accordion" data-accordion="">
|
||||
<dd class="">
|
||||
<a href="#panel5">Genesis Seed Injector</a>
|
||||
<div id="panel5" class="content">
|
||||
</div>
|
||||
</dd>
|
||||
<dd class="">
|
||||
<a href="#panel6">FarmBot Pro Nozzle</a>
|
||||
<div id="panel6" class="content">
|
||||
Panel 2. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
<dd>
|
||||
<a href="#panel7">Precision Burner</a>
|
||||
<div id="panel7" class="content">
|
||||
Panel 3. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
<dd class="">
|
||||
<a href="#panel8">Alain Tiller</a>
|
||||
<div id="panel8" class="content">
|
||||
Panel 3. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<!-- Side Bar -->
|
||||
|
||||
<div class="large-6 columns">
|
||||
|
||||
<div class="panel clearfix">
|
||||
|
||||
<div class="large-4 columns">
|
||||
|
||||
<h6>Farmbot</h6>
|
||||
|
||||
<dl class="accordion" data-accordion="">
|
||||
<dd class="">
|
||||
<a href="#panel1">Genesis Tracks</a>
|
||||
<div id="panel1" class="content">
|
||||
<p>Model: Genesis Tracks v2.6</p>
|
||||
<p>Length: 36 meters </p>
|
||||
<p>Width: 2 meters</p>
|
||||
<p>Height: 18 centimeters</p>
|
||||
<p>Installation date: 9/6/2013</p>
|
||||
</div>
|
||||
<!-- end large-4 -->
|
||||
<div class="large-4 columns">
|
||||
<h6>Sensors</h6>
|
||||
<dl class="accordion" data-accordion="">
|
||||
<dd class="">
|
||||
<a href="#panel9">Ambient Temperature</a>
|
||||
<div id="panel9" class="content">
|
||||
</div>
|
||||
</dd>
|
||||
<dd>
|
||||
<a href="#panel10">Moisture Meter</a>
|
||||
<div id="panel10" class="content">
|
||||
Panel 2. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
<dd class="">
|
||||
<a href="#panel11">Genesis pH</a>
|
||||
<div id="panel11" class="content">
|
||||
Panel 3. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<!-- end large-4 -->
|
||||
</div>
|
||||
</dd>
|
||||
<dd>
|
||||
<a href="#panel2">Genesis Gantry</a>
|
||||
<div id="panel2" class="content">
|
||||
Panel 2. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
<dd>
|
||||
<a href="#panel3">Richmond Cross Slide</a>
|
||||
<div id="panel3" class="content">
|
||||
Panel 3. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
<dd class="">
|
||||
<a href="#panel4">Custom Tool Mount</a>
|
||||
<div id="panel4" class="content">
|
||||
Panel 3. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div><!-- end large-4 -->
|
||||
<div class="large-4 columns">
|
||||
|
||||
<h6>Tools</h6>
|
||||
|
||||
<dl class="accordion" data-accordion="">
|
||||
<dd class="">
|
||||
<a href="#panel5">Genesis Seed Injector</a>
|
||||
<div id="panel5" class="content">
|
||||
|
||||
</div>
|
||||
</dd>
|
||||
<dd class="">
|
||||
<a href="#panel6">FarmBot Pro Nozzle</a>
|
||||
<div id="panel6" class="content">
|
||||
Panel 2. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
<dd>
|
||||
<a href="#panel7">Precision Burner</a>
|
||||
<div id="panel7" class="content">
|
||||
Panel 3. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
<dd class="">
|
||||
<a href="#panel8">Alain Tiller</a>
|
||||
<div id="panel8" class="content">
|
||||
Panel 3. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
</div><!-- end large-4 -->
|
||||
<div class="large-4 columns">
|
||||
|
||||
<h6>Sensors</h6>
|
||||
|
||||
<dl class="accordion" data-accordion="">
|
||||
<dd class="">
|
||||
<a href="#panel9">Ambient Temperature</a>
|
||||
<div id="panel9" class="content">
|
||||
|
||||
</div>
|
||||
</dd>
|
||||
<dd>
|
||||
<a href="#panel10">Moisture Meter</a>
|
||||
<div id="panel10" class="content">
|
||||
Panel 2. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
<dd class="">
|
||||
<a href="#panel11">Genesis pH</a>
|
||||
<div id="panel11" class="content">
|
||||
Panel 3. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div><!-- end large-4 -->
|
||||
|
||||
</div> <!-- End Panel -->
|
||||
|
||||
<div class="panel">
|
||||
|
||||
<div class="container clearfix">
|
||||
<div class="large-4 columns">Gantry (X)</div>
|
||||
<div class="large-4 columns"><span class="label round success"><i class="fi-plus"></i></span> 46 <span class="label round alert"><i class="fi-minus"></i></span></div>
|
||||
<div class="large-4 columns">Jog to: </div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="container clearfix">
|
||||
<div class="large-4 columns">Cross-Slide (Y)</div>
|
||||
<div class="large-4 columns"><span class="label round success"><i class="fi-plus"></i></span> 46 <span class="label round alert"><i class="fi-minus"></i></span></div>
|
||||
<div class="large-4 columns">Jog to: </div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="container clearfix">
|
||||
<div class="large-4 columns">Tool Mount (Z)</div>
|
||||
<div class="large-4 columns"><span class="label round success"><i class="fi-plus"></i></span> 46 <span class="label round alert"><i class="fi-minus"></i></span></div>
|
||||
<div class="large-4 columns">Jog to: </div>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
<ul class="button-group even-3">
|
||||
<li><a href="#" class="button small">Jog to Home</a></li>
|
||||
<li><a href="#" class="button small">Calibrate</a></li>
|
||||
<li><a href="#" class="button small alert">Shutdown</a></li>
|
||||
</ul>
|
||||
|
||||
</div> <!-- End Panel -->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="#" data-reveal-id="myModal" data-reveal="">
|
||||
<div class="panel callout radius">
|
||||
<h6>View System Information</h6>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<!-- End Panel -->
|
||||
<div class="panel">
|
||||
<div class="container clearfix">
|
||||
<div class="large-4 columns">Gantry (X)</div>
|
||||
<div class="large-4 columns">
|
||||
<span class="label round success"><i class="fi-plus"></i>
|
||||
</span>46
|
||||
<span class="label round alert"><i class="fi-minus"></i>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- End Side Bar -->
|
||||
|
||||
<div class="large-4 columns">Jog to:</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="container clearfix">
|
||||
<div class="large-4 columns">Cross-Slide (Y)</div>
|
||||
<div class="large-4 columns">
|
||||
<span class="label round success"><i class="fi-plus"></i>
|
||||
</span>46
|
||||
<span class="label round alert"><i class="fi-minus"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="large-4 columns">Jog to:</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="container clearfix">
|
||||
<div class="large-4 columns">Tool Mount (Z)</div>
|
||||
<div class="large-4 columns">
|
||||
<span class="label round success"><i class="fi-plus"></i>
|
||||
</span>46
|
||||
<span class="label round alert"><i class="fi-minus"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="large-4 columns">Jog to:</div>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
<ul class="button-group even-3">
|
||||
<li><a href="#" class="button small">Jog to Home</a>
|
||||
</li>
|
||||
<li><a href="#" class="button small">Calibrate</a>
|
||||
</li>
|
||||
<li><a href="#" class="button small alert">Shutdown</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End Panel -->
|
||||
|
||||
|
||||
|
||||
<a href="#" data-reveal-id="myModal" data-reveal="">
|
||||
<div class="panel callout radius">
|
||||
<h6>View System Information</h6>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<!-- End Side Bar -->
|
||||
|
||||
<div id="myModal" class="reveal-modal" data-reveal="" style="display: none; opacity: 1; visibility: hidden; top: -665px;">
|
||||
<h2>System Information</h2>
|
||||
<p>Next operation in: 9 minutes (Watering)</p>
|
||||
<a class="close-reveal-modal">×</a>
|
||||
</div>
|
||||
|
||||
<!-- Thumbnails -->
|
||||
<div class="large-6 columns">
|
||||
|
||||
<div class="panel">
|
||||
<nav class="top-bar" data-topbar="">
|
||||
<ul class="title-area">
|
||||
<li class="name">
|
||||
<h1><a href="#">Resource Usage</a>
|
||||
</h1>
|
||||
</li>
|
||||
<li class="toggle-topbar menu-icon"><a href="#">Menu</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<section class="top-bar-section">
|
||||
<!-- Right Nav Section -->
|
||||
<ul class="right">
|
||||
<li class="has-dropdown not-click">
|
||||
<a href="#">Plot 1: Nitrogen Fertilizer</a>
|
||||
<ul class="dropdown">
|
||||
<li class="title back js-generated">
|
||||
<h5><a href="javascript:void(0)">Back</a>
|
||||
</h5>
|
||||
</li>
|
||||
<li><a href="#">First link in dropdown</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="has-dropdown not-click">
|
||||
<a href="#">Plot 2: Water</a>
|
||||
<ul class="dropdown">
|
||||
<li class="title back js-generated">
|
||||
<h5><a href="javascript:void(0)">Back</a>
|
||||
</h5>
|
||||
</li>
|
||||
<li><a href="#">First link in dropdown</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</nav>
|
||||
|
||||
<div class="panel-chart">
|
||||
<img src="http://placehold.it/1000x400&text=Graph">
|
||||
</div>
|
||||
</div>
|
||||
<!-- end panel -->
|
||||
|
||||
<div class="panel">
|
||||
<nav class="top-bar" data-topbar="">
|
||||
<ul class="title-area">
|
||||
<li class="name">
|
||||
<h1><a href="#">Finances</a>
|
||||
</h1>
|
||||
</li>
|
||||
<li class="toggle-topbar menu-icon"><a href="#">Menu</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<section class="top-bar-section">
|
||||
<!-- Right Nav Section -->
|
||||
<ul class="right">
|
||||
<li class="has-dropdown not-click">
|
||||
<a href="#">Plot 1: Revenue</a>
|
||||
<ul class="dropdown">
|
||||
<li class="title back js-generated">
|
||||
<h5><a href="javascript:void(0)">Back</a>
|
||||
</h5>
|
||||
</li>
|
||||
<li><a href="#">First link in dropdown</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="has-dropdown not-click">
|
||||
<a href="#">Plot 2: Expenditures</a>
|
||||
<ul class="dropdown">
|
||||
<li class="title back js-generated">
|
||||
<h5><a href="javascript:void(0)">Back</a>
|
||||
</h5>
|
||||
</li>
|
||||
<li><a href="#">First link in dropdown</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</nav>
|
||||
|
||||
<div class="panel-chart">
|
||||
<img src="http://placehold.it/1000x400&text=Graph">
|
||||
</div>
|
||||
</div>
|
||||
<!-- end panel -->
|
||||
</div>
|
||||
<!-- End Thumbnails -->
|
||||
|
||||
<div id="myModal" class="reveal-modal" data-reveal="" style="display: none; opacity: 1; visibility: hidden; top: -665px;">
|
||||
<h2>System Information</h2>
|
||||
<p>Next operation in: 9 minutes (Watering)</p>
|
||||
<a class="close-reveal-modal">×</a>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Thumbnails -->
|
||||
|
||||
<div class="large-6 columns">
|
||||
|
||||
|
||||
<div class="panel">
|
||||
|
||||
<nav class="top-bar" data-topbar="">
|
||||
<ul class="title-area">
|
||||
<li class="name">
|
||||
<h1><a href="#">Resource Usage</a></h1>
|
||||
</li>
|
||||
<li class="toggle-topbar menu-icon"><a href="#">Menu</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<section class="top-bar-section">
|
||||
<!-- Right Nav Section -->
|
||||
<ul class="right">
|
||||
<li class="has-dropdown not-click">
|
||||
<a href="#">Plot 1: Nitrogen Fertilizer</a>
|
||||
<ul class="dropdown"><li class="title back js-generated"><h5><a href="javascript:void(0)">Back</a></h5></li>
|
||||
<li><a href="#">First link in dropdown</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="has-dropdown not-click">
|
||||
<a href="#">Plot 2: Water</a>
|
||||
<ul class="dropdown"><li class="title back js-generated"><h5><a href="javascript:void(0)">Back</a></h5></li>
|
||||
<li><a href="#">First link in dropdown</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</section></nav>
|
||||
|
||||
|
||||
<div class="panel-chart"><img src="http://placehold.it/1000x400&text=Graph"></div>
|
||||
</div><!-- end panel -->
|
||||
|
||||
|
||||
<div class="panel">
|
||||
|
||||
<nav class="top-bar" data-topbar="">
|
||||
<ul class="title-area">
|
||||
<li class="name">
|
||||
<h1><a href="#">Finances</a></h1>
|
||||
</li>
|
||||
<li class="toggle-topbar menu-icon"><a href="#">Menu</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<section class="top-bar-section">
|
||||
<!-- Right Nav Section -->
|
||||
<ul class="right">
|
||||
<li class="has-dropdown not-click">
|
||||
<a href="#">Plot 1: Revenue</a>
|
||||
<ul class="dropdown"><li class="title back js-generated"><h5><a href="javascript:void(0)">Back</a></h5></li>
|
||||
<li><a href="#">First link in dropdown</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="has-dropdown not-click">
|
||||
<a href="#">Plot 2: Expenditures</a>
|
||||
<ul class="dropdown"><li class="title back js-generated"><h5><a href="javascript:void(0)">Back</a></h5></li>
|
||||
<li><a href="#">First link in dropdown</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</section></nav>
|
||||
|
||||
|
||||
<div class="panel-chart"><img src="http://placehold.it/1000x400&text=Graph"></div>
|
||||
</div><!-- end panel -->
|
||||
|
||||
</div><!-- End Thumbnails -->
|
||||
|
||||
|
||||
|
||||
</div><!-- End Container -->
|
||||
<!-- End Container -->
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
.row
|
||||
.large-12.columns
|
||||
%h1 Manage FarmBot Device Settings
|
||||
%form
|
||||
%fieldset
|
||||
%legend FarmBot Settings
|
||||
.row
|
||||
.large-12.columns
|
||||
%label Friendly Name
|
||||
%input{placeholder: "Franny the FarmBot", type: "text"}/
|
||||
.row
|
||||
.large-6.columns
|
||||
%label Skynet UUID
|
||||
%input{placeholder: "ad698900-2546-11e3-87fb-c560cb0ca47b", type: "text"}/
|
||||
.large-6.columns
|
||||
%label Skynet Security Token
|
||||
%input{placeholder: "4bbd2jm242dl5wmimbwz4rvlu77m0a4i", type: "text"}/
|
||||
.row
|
||||
.large-12.columns
|
||||
%button.button
|
||||
%i.fi-check{style: 'font-size: 18px;'}
|
||||
Store Settings
|
||||
%table
|
||||
%thead
|
||||
%tr
|
||||
%th{width: '90%'} Friendly Name
|
||||
%th{width: '5%'} Delete
|
||||
%th{width: '5%'} Edit
|
||||
%tbody
|
||||
%tr
|
||||
%td
|
||||
Franny the Farmbot
|
||||
%td
|
||||
%button.tiny.alert.button
|
||||
%i.fi-x{style: 'font-size: 18px;'}
|
||||
%td
|
||||
%button.tiny.button
|
||||
%i.fi-wrench{style: 'font-size: 18px;'}
|
||||
%tr
|
||||
%td
|
||||
The Cabbage Patch Kid
|
||||
%td
|
||||
%button.tiny.alert.button
|
||||
%i.fi-x{style: 'font-size: 18px;'}
|
||||
%td
|
||||
%button.tiny.button
|
||||
%i.fi-wrench{style: 'font-size: 18px;'}
|
|
@ -1,4 +0,0 @@
|
|||
<ul>
|
||||
<li><%= link_to 'New User', new_user_registration_path %></li>
|
||||
<li><%= link_to 'Edit Settings', edit_user_registration_path %></li>
|
||||
</ul>
|
|
@ -0,0 +1,6 @@
|
|||
# Read about factories at https://github.com/thoughtbot/factory_girl
|
||||
|
||||
FactoryGirl.define do
|
||||
factory :farmbot_device do
|
||||
end
|
||||
end
|
|
@ -0,0 +1,22 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe FarmbotDevice do
|
||||
let(:user) { FactoryGirl.create(:user) }
|
||||
let(:device){ FactoryGirl.create(:farmbot_device, user: user)}
|
||||
|
||||
it 'is associated with a user' do
|
||||
expect(device.user).to be_kind_of(User)
|
||||
expect(user.farmbot_devices).to be_kind_of(Array)
|
||||
expect(user.farmbot_devices.first).to be_kind_of(FarmbotDevice)
|
||||
end
|
||||
|
||||
it 'destroys dependant devices' do
|
||||
bot_id = device.id
|
||||
user_id = user.id
|
||||
user.destroy
|
||||
user_results = User.where(id: user_id).first
|
||||
bot_results = FarmbotDevice.where(id: bot_id).first
|
||||
expect(bot_results).to be_nil
|
||||
expect(user_results).to be_nil
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue