Adding mac history graph
This commit is contained in:
		
							parent
							
								
									d88abe7d32
								
							
						
					
					
						commit
						02b997b838
					
				
							
								
								
									
										2
									
								
								Gemfile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Gemfile
									
									
									
									
									
								
							@ -2,7 +2,7 @@ source 'https://rubygems.org'
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ruby '1.9.3'
 | 
					ruby '1.9.3'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
gem 'rails', '3.2.3'
 | 
					gem 'rails', '3.2.8'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Bundle edge Rails instead:
 | 
					# Bundle edge Rails instead:
 | 
				
			||||||
# gem 'rails', :git => 'git://github.com/rails/rails.git'
 | 
					# gem 'rails', :git => 'git://github.com/rails/rails.git'
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										64
									
								
								Gemfile.lock
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								Gemfile.lock
									
									
									
									
									
								
							@ -1,31 +1,31 @@
 | 
				
			|||||||
GEM
 | 
					GEM
 | 
				
			||||||
  remote: https://rubygems.org/
 | 
					  remote: https://rubygems.org/
 | 
				
			||||||
  specs:
 | 
					  specs:
 | 
				
			||||||
    actionmailer (3.2.3)
 | 
					    actionmailer (3.2.8)
 | 
				
			||||||
      actionpack (= 3.2.3)
 | 
					      actionpack (= 3.2.8)
 | 
				
			||||||
      mail (~> 2.4.4)
 | 
					      mail (~> 2.4.4)
 | 
				
			||||||
    actionpack (3.2.3)
 | 
					    actionpack (3.2.8)
 | 
				
			||||||
      activemodel (= 3.2.3)
 | 
					      activemodel (= 3.2.8)
 | 
				
			||||||
      activesupport (= 3.2.3)
 | 
					      activesupport (= 3.2.8)
 | 
				
			||||||
      builder (~> 3.0.0)
 | 
					      builder (~> 3.0.0)
 | 
				
			||||||
      erubis (~> 2.7.0)
 | 
					      erubis (~> 2.7.0)
 | 
				
			||||||
      journey (~> 1.0.1)
 | 
					      journey (~> 1.0.4)
 | 
				
			||||||
      rack (~> 1.4.0)
 | 
					      rack (~> 1.4.0)
 | 
				
			||||||
      rack-cache (~> 1.2)
 | 
					      rack-cache (~> 1.2)
 | 
				
			||||||
      rack-test (~> 0.6.1)
 | 
					      rack-test (~> 0.6.1)
 | 
				
			||||||
      sprockets (~> 2.1.2)
 | 
					      sprockets (~> 2.1.3)
 | 
				
			||||||
    activemodel (3.2.3)
 | 
					    activemodel (3.2.8)
 | 
				
			||||||
      activesupport (= 3.2.3)
 | 
					      activesupport (= 3.2.8)
 | 
				
			||||||
      builder (~> 3.0.0)
 | 
					      builder (~> 3.0.0)
 | 
				
			||||||
    activerecord (3.2.3)
 | 
					    activerecord (3.2.8)
 | 
				
			||||||
      activemodel (= 3.2.3)
 | 
					      activemodel (= 3.2.8)
 | 
				
			||||||
      activesupport (= 3.2.3)
 | 
					      activesupport (= 3.2.8)
 | 
				
			||||||
      arel (~> 3.0.2)
 | 
					      arel (~> 3.0.2)
 | 
				
			||||||
      tzinfo (~> 0.3.29)
 | 
					      tzinfo (~> 0.3.29)
 | 
				
			||||||
    activeresource (3.2.3)
 | 
					    activeresource (3.2.8)
 | 
				
			||||||
      activemodel (= 3.2.3)
 | 
					      activemodel (= 3.2.8)
 | 
				
			||||||
      activesupport (= 3.2.3)
 | 
					      activesupport (= 3.2.8)
 | 
				
			||||||
    activesupport (3.2.3)
 | 
					    activesupport (3.2.8)
 | 
				
			||||||
      i18n (~> 0.6)
 | 
					      i18n (~> 0.6)
 | 
				
			||||||
      multi_json (~> 1.0)
 | 
					      multi_json (~> 1.0)
 | 
				
			||||||
    arel (3.0.2)
 | 
					    arel (3.0.2)
 | 
				
			||||||
@ -54,14 +54,14 @@ GEM
 | 
				
			|||||||
    jquery-rails (3.0.4)
 | 
					    jquery-rails (3.0.4)
 | 
				
			||||||
      railties (>= 3.0, < 5.0)
 | 
					      railties (>= 3.0, < 5.0)
 | 
				
			||||||
      thor (>= 0.14, < 2.0)
 | 
					      thor (>= 0.14, < 2.0)
 | 
				
			||||||
    json (1.8.0)
 | 
					    json (1.8.1)
 | 
				
			||||||
    libv8 (3.16.14.3)
 | 
					    libv8 (3.16.14.3)
 | 
				
			||||||
    mail (2.4.4)
 | 
					    mail (2.4.4)
 | 
				
			||||||
      i18n (>= 0.4.0)
 | 
					      i18n (>= 0.4.0)
 | 
				
			||||||
      mime-types (~> 1.16)
 | 
					      mime-types (~> 1.16)
 | 
				
			||||||
      treetop (~> 1.4.8)
 | 
					      treetop (~> 1.4.8)
 | 
				
			||||||
    mime-types (1.25)
 | 
					    mime-types (1.25)
 | 
				
			||||||
    multi_json (1.8.0)
 | 
					    multi_json (1.8.2)
 | 
				
			||||||
    orm_adapter (0.4.0)
 | 
					    orm_adapter (0.4.0)
 | 
				
			||||||
    passenger (4.0.19)
 | 
					    passenger (4.0.19)
 | 
				
			||||||
      daemon_controller (>= 1.1.0)
 | 
					      daemon_controller (>= 1.1.0)
 | 
				
			||||||
@ -76,23 +76,23 @@ GEM
 | 
				
			|||||||
      rack
 | 
					      rack
 | 
				
			||||||
    rack-test (0.6.2)
 | 
					    rack-test (0.6.2)
 | 
				
			||||||
      rack (>= 1.0)
 | 
					      rack (>= 1.0)
 | 
				
			||||||
    rails (3.2.3)
 | 
					    rails (3.2.8)
 | 
				
			||||||
      actionmailer (= 3.2.3)
 | 
					      actionmailer (= 3.2.8)
 | 
				
			||||||
      actionpack (= 3.2.3)
 | 
					      actionpack (= 3.2.8)
 | 
				
			||||||
      activerecord (= 3.2.3)
 | 
					      activerecord (= 3.2.8)
 | 
				
			||||||
      activeresource (= 3.2.3)
 | 
					      activeresource (= 3.2.8)
 | 
				
			||||||
      activesupport (= 3.2.3)
 | 
					      activesupport (= 3.2.8)
 | 
				
			||||||
      bundler (~> 1.0)
 | 
					      bundler (~> 1.0)
 | 
				
			||||||
      railties (= 3.2.3)
 | 
					      railties (= 3.2.8)
 | 
				
			||||||
    rails-settings-cached (0.2.4)
 | 
					    rails-settings-cached (0.2.4)
 | 
				
			||||||
      rails (>= 3.0.0)
 | 
					      rails (>= 3.0.0)
 | 
				
			||||||
    railties (3.2.3)
 | 
					    railties (3.2.8)
 | 
				
			||||||
      actionpack (= 3.2.3)
 | 
					      actionpack (= 3.2.8)
 | 
				
			||||||
      activesupport (= 3.2.3)
 | 
					      activesupport (= 3.2.8)
 | 
				
			||||||
      rack-ssl (~> 1.3.2)
 | 
					      rack-ssl (~> 1.3.2)
 | 
				
			||||||
      rake (>= 0.8.7)
 | 
					      rake (>= 0.8.7)
 | 
				
			||||||
      rdoc (~> 3.4)
 | 
					      rdoc (~> 3.4)
 | 
				
			||||||
      thor (~> 0.14.6)
 | 
					      thor (>= 0.14.6, < 2.0)
 | 
				
			||||||
    rake (10.1.0)
 | 
					    rake (10.1.0)
 | 
				
			||||||
    rdoc (3.12.2)
 | 
					    rdoc (3.12.2)
 | 
				
			||||||
      json (~> 1.4)
 | 
					      json (~> 1.4)
 | 
				
			||||||
@ -120,12 +120,12 @@ GEM
 | 
				
			|||||||
    therubyracer (0.12.0)
 | 
					    therubyracer (0.12.0)
 | 
				
			||||||
      libv8 (~> 3.16.14.0)
 | 
					      libv8 (~> 3.16.14.0)
 | 
				
			||||||
      ref
 | 
					      ref
 | 
				
			||||||
    thor (0.14.6)
 | 
					    thor (0.18.1)
 | 
				
			||||||
    tilt (1.4.1)
 | 
					    tilt (1.4.1)
 | 
				
			||||||
    treetop (1.4.15)
 | 
					    treetop (1.4.15)
 | 
				
			||||||
      polyglot
 | 
					      polyglot
 | 
				
			||||||
      polyglot (>= 0.3.1)
 | 
					      polyglot (>= 0.3.1)
 | 
				
			||||||
    tzinfo (0.3.37)
 | 
					    tzinfo (0.3.38)
 | 
				
			||||||
    uglifier (2.2.1)
 | 
					    uglifier (2.2.1)
 | 
				
			||||||
      execjs (>= 0.3.0)
 | 
					      execjs (>= 0.3.0)
 | 
				
			||||||
      multi_json (~> 1.0, >= 1.0.2)
 | 
					      multi_json (~> 1.0, >= 1.0.2)
 | 
				
			||||||
@ -145,7 +145,7 @@ DEPENDENCIES
 | 
				
			|||||||
  json
 | 
					  json
 | 
				
			||||||
  passenger
 | 
					  passenger
 | 
				
			||||||
  pg
 | 
					  pg
 | 
				
			||||||
  rails (= 3.2.3)
 | 
					  rails (= 3.2.8)
 | 
				
			||||||
  rails-settings-cached (= 0.2.4)
 | 
					  rails-settings-cached (= 0.2.4)
 | 
				
			||||||
  sass-rails (~> 3.2.3)
 | 
					  sass-rails (~> 3.2.3)
 | 
				
			||||||
  sqlite3
 | 
					  sqlite3
 | 
				
			||||||
 | 
				
			|||||||
@ -13,3 +13,11 @@ class ApplicationController < ActionController::Base
 | 
				
			|||||||
  @payment_methods = [[nil],["PayPal"],["Dwolla"],["Bill Pay"],["Check"],["Cash"],["Other"]]
 | 
					  @payment_methods = [[nil],["PayPal"],["Dwolla"],["Bill Pay"],["Check"],["Cash"],["Other"]]
 | 
				
			||||||
  @payment_instructions = {nil => nil, :paypal => "Set up a monthly recurring payment to hslfinances@gmail.com", :dwolla => "Set up a monthly recurring payment to hslfinances@gmail.com", :billpay =>  "Have your bank send a monthly check to HeatSync Labs Treasurer, 140 W Main St, Mesa AZ 85201", :check => "Mail to HeatSync Labs Treasurer, 140 W Main St, Mesa AZ 85201 OR put in the drop safe at the Lab with a deposit slip firmly attached each month.", :cash => "Put in the drop safe at the Lab with a deposit slip firmly attached each month.", :other => "Hmm... talk to a Treasurer!"}
 | 
					  @payment_instructions = {nil => nil, :paypal => "Set up a monthly recurring payment to hslfinances@gmail.com", :dwolla => "Set up a monthly recurring payment to hslfinances@gmail.com", :billpay =>  "Have your bank send a monthly check to HeatSync Labs Treasurer, 140 W Main St, Mesa AZ 85201", :check => "Mail to HeatSync Labs Treasurer, 140 W Main St, Mesa AZ 85201 OR put in the drop safe at the Lab with a deposit slip firmly attached each month.", :cash => "Put in the drop safe at the Lab with a deposit slip firmly attached each month.", :other => "Hmm... talk to a Treasurer!"}
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Add a "fit" function to sanitize inputs for mac history
 | 
				
			||||||
 | 
					class Fixnum
 | 
				
			||||||
 | 
					  def fit(range)
 | 
				
			||||||
 | 
					    self > range.max ? range.max : (self < range.min ? range.min : self)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
class MacsController < ApplicationController
 | 
					class MacsController < ApplicationController
 | 
				
			||||||
load_and_authorize_resource :mac, :except => :create
 | 
					load_and_authorize_resource :mac, :except => [:create, :history]
 | 
				
			||||||
#load_and_authorize_resource :user, :through => :mac, :except => [:index, :show, :scan, :import]
 | 
					#load_and_authorize_resource :user, :through => :mac, :except => [:index, :show, :scan, :import]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
before_filter :arp_lookup, :only => :new
 | 
					before_filter :arp_lookup, :only => :new
 | 
				
			||||||
@ -86,6 +86,47 @@ def index
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def history
 | 
				
			||||||
 | 
					    authorize! :read_details, Mac
 | 
				
			||||||
 | 
					    begin
 | 
				
			||||||
 | 
					      @start_date = DateTime.parse(params[:start])
 | 
				
			||||||
 | 
					      @end_date = DateTime.parse(params[:end])
 | 
				
			||||||
 | 
					    rescue
 | 
				
			||||||
 | 
					      @start_date = DateTime.now - 2.weeks
 | 
				
			||||||
 | 
					      @end_date = DateTime.now
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @mac_logs_by_hour = MacLog.where("created_at > ? AND created_at < ?", @start_date, @end_date).group_by{|m| m.created_at.beginning_of_hour}
 | 
				
			||||||
 | 
					    @mac_log_graph = []
 | 
				
			||||||
 | 
					    mac_running_balance = 0
 | 
				
			||||||
 | 
					    lowest_balance = 0
 | 
				
			||||||
 | 
					    @mac_logs_by_hour.each do |time, mac_log|
 | 
				
			||||||
 | 
					      mac_log.each do |entry|
 | 
				
			||||||
 | 
					        # Add one computer for activate, subtract one for deactivate
 | 
				
			||||||
 | 
					        if entry.action == "activate"
 | 
				
			||||||
 | 
					          mac_running_balance += 1
 | 
				
			||||||
 | 
					        elsif entry.action == "deactivate"
 | 
				
			||||||
 | 
					          mac_running_balance -= 1
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					        # Keep track of the lowest number in the graph
 | 
				
			||||||
 | 
					        if mac_running_balance < lowest_balance
 | 
				
			||||||
 | 
					          lowest_balance = mac_running_balance
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					      @mac_log_graph << [time.to_time.to_i*1000,mac_running_balance]
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if lowest_balance != 0
 | 
				
			||||||
 | 
					      # Subtract a negative balance to raise everything
 | 
				
			||||||
 | 
					      @mac_log_graph = @mac_log_graph.map{ |time,balance| [time, balance - lowest_balance] }
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    respond_to do |format|
 | 
				
			||||||
 | 
					      format.html
 | 
				
			||||||
 | 
					      format.json { render :json => @mac_log_graph }
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # GET /macs/1
 | 
					  # GET /macs/1
 | 
				
			||||||
  # GET /macs/1.json
 | 
					  # GET /macs/1.json
 | 
				
			||||||
  def show
 | 
					  def show
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										112
									
								
								app/views/macs/history.html.erb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								app/views/macs/history.html.erb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,112 @@
 | 
				
			|||||||
 | 
					<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
 | 
				
			||||||
 | 
					<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
 | 
				
			||||||
 | 
					<script src="http://code.highcharts.com/highcharts.js"></script>
 | 
				
			||||||
 | 
					<script type="text/javascript">
 | 
				
			||||||
 | 
					graph_data = <%= raw @mac_log_graph.to_json %>;
 | 
				
			||||||
 | 
					plot_band_start_hour = 16;
 | 
				
			||||||
 | 
					plot_band_end_hour = 22;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(function() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  $('#graph').highcharts({
 | 
				
			||||||
 | 
					      chart: {
 | 
				
			||||||
 | 
					        type: 'column',
 | 
				
			||||||
 | 
					        zoomType : 'x'   
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      colors: [
 | 
				
			||||||
 | 
					        '#2980B9'
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      title: { 
 | 
				
			||||||
 | 
					        style : { fontSize: '10px' },
 | 
				
			||||||
 | 
					        text: "Click and Drag to Zoom." 
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      xAxis: {
 | 
				
			||||||
 | 
					        title : { text : "Days" },
 | 
				
			||||||
 | 
					        type : 'datetime',
 | 
				
			||||||
 | 
					        plotBands: generatePlotBands(graph_data[0][0], graph_data[graph_data.length-1][0]),
 | 
				
			||||||
 | 
					        labels : { align : "left" }
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      yAxis : {
 | 
				
			||||||
 | 
					        title : {
 | 
				
			||||||
 | 
					          text : "# of Computers"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      series: [
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        name: "Computers",
 | 
				
			||||||
 | 
					        data: graph_data
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      plotOptions: {
 | 
				
			||||||
 | 
					        spline: {
 | 
				
			||||||
 | 
					          lineWidth: 4,
 | 
				
			||||||
 | 
					          marker: {
 | 
				
			||||||
 | 
					            enabled: false
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          pointInterval: 3600000, // one hour
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					   Highcharts.setOptions({
 | 
				
			||||||
 | 
					     global : {
 | 
				
			||||||
 | 
					       useUTC : false
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					   });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function generatePlotBands(start,end){
 | 
				
			||||||
 | 
					  plotBands = new Array();
 | 
				
			||||||
 | 
					  for (var d = new Date(start); d <= end; d.setDate(d.getDate() + 1)) {
 | 
				
			||||||
 | 
					    // weekends
 | 
				
			||||||
 | 
					    if(d.getDay()%6==0){
 | 
				
			||||||
 | 
					      // highlight the whole day
 | 
				
			||||||
 | 
					      plotBands.push({
 | 
				
			||||||
 | 
					        color: '#eee',
 | 
				
			||||||
 | 
					        from: d.setHours(0),
 | 
				
			||||||
 | 
					        to: d.setHours(23)
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      // weekend hours
 | 
				
			||||||
 | 
					      plotBands.push({
 | 
				
			||||||
 | 
					        color: '#94C9EC',
 | 
				
			||||||
 | 
					        from: d.setHours(12),
 | 
				
			||||||
 | 
					        to: d.setHours(18)
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else if(d.getDay()==3){
 | 
				
			||||||
 | 
					      // special wednesday hours
 | 
				
			||||||
 | 
					      plotBands.push({
 | 
				
			||||||
 | 
					        color: '#94C9EC',
 | 
				
			||||||
 | 
					        from: d.setHours(12),
 | 
				
			||||||
 | 
					        to: d.setHours(plot_band_end_hour)
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else {
 | 
				
			||||||
 | 
					      // open hours
 | 
				
			||||||
 | 
					      plotBands.push({
 | 
				
			||||||
 | 
					        color: '#82DAC9',
 | 
				
			||||||
 | 
					        from: d.setHours(plot_band_start_hour),
 | 
				
			||||||
 | 
					        to: d.setHours(plot_band_end_hour)
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return plotBands;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h2>Daily Computer Graph</h2>
 | 
				
			||||||
 | 
					<p><em>Note: these numbers are not absolute. They are calculated and adjusted on-the-fly and thus may vary depending on the query parameters.</em></p>
 | 
				
			||||||
 | 
					<%= link_to 'Back to Computers', macs_path, :class => 'btn' %>
 | 
				
			||||||
 | 
					<%= link_to 'Download JSON', macs_history_path+".json", :class => 'btn' %>
 | 
				
			||||||
 | 
					<div id="graph" title="MAC Presence by Day" style="height: 400px; width: 100%;"></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<%= form_tag(nil, :method => :get) do %>
 | 
				
			||||||
 | 
					  <label>Start Date
 | 
				
			||||||
 | 
					    <input id="start" name="start" type="date" value="<%= @start_date.to_date.to_s %>" />
 | 
				
			||||||
 | 
					  </label>
 | 
				
			||||||
 | 
					  <label>End Date
 | 
				
			||||||
 | 
					    <input id="end" name="end" type="date" value="<%= @end_date.to_date.to_s %>" />
 | 
				
			||||||
 | 
					  </label>
 | 
				
			||||||
 | 
					  <%= submit_tag("Change Date", :name => nil, :class => 'btn') %>
 | 
				
			||||||
 | 
					<% end %>
 | 
				
			||||||
@ -17,7 +17,8 @@
 | 
				
			|||||||
<% end %>
 | 
					<% end %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h2>What machines are on our network?</h2>
 | 
					<h2>What machines are on our network?</h2>
 | 
				
			||||||
<%= link_to "New MAC registration", new_mac_path if can? :create, Mac %>
 | 
					<%= link_to "New MAC registration", new_mac_path, :class => 'btn' if can? :create, Mac %>
 | 
				
			||||||
 | 
					<%= link_to 'Activity Graph', macs_history_path, :class => 'btn' if can? :read_details, Mac %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<ul class="mac_list">
 | 
					<ul class="mac_list">
 | 
				
			||||||
<%
 | 
					<%
 | 
				
			||||||
 | 
				
			|||||||
@ -51,6 +51,7 @@ Dooraccess::Application.routes.draw do
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  match 'macs/scan' => 'macs#scan'
 | 
					  match 'macs/scan' => 'macs#scan'
 | 
				
			||||||
  match 'macs/import' => 'macs#import'
 | 
					  match 'macs/import' => 'macs#import'
 | 
				
			||||||
 | 
					  match 'macs/history' => 'macs#history'
 | 
				
			||||||
  resources :macs
 | 
					  resources :macs
 | 
				
			||||||
  resources :mac_logs
 | 
					  resources :mac_logs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user