Class: AdvertSelector::BannersController

Inherits:
ApplicationController show all
Defined in:
app/controllers/advert_selector/banners_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#admin_access_only, #set_locale, #set_time_zone

Instance Method Details

#createObject

POST /banners POST /banners.json



60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'app/controllers/advert_selector/banners_controller.rb', line 60

def create
  @banner = Banner.new(params[:banner])
  
  respond_to do |format|
    if @banner.save
      format.html { redirect_to @banner, :notice => 'Banner was successfully created.' }
      format.json { render :json => @banner, :status => :created, :location => @banner }
    else
      format.html { render :action => "new" }
      format.json { render :json => @banner.errors, :status => :unprocessable_entity }
    end
  end
end

#destroyObject

DELETE /banners/1 DELETE /banners/1.json



111
112
113
114
115
116
117
118
119
# File 'app/controllers/advert_selector/banners_controller.rb', line 111

def destroy
  @banner = Banner.find(params[:id])
  @banner.destroy
  
  respond_to do |format|
    format.html { redirect_to banners_url }
    format.json { head :no_content }
  end
end

#editObject

GET /banners/1/edit



54
55
56
# File 'app/controllers/advert_selector/banners_controller.rb', line 54

def edit
  @banner = Banner.find(params[:id])
end

#indexObject

GET /banners GET /banners.json



7
8
9
10
11
12
13
14
# File 'app/controllers/advert_selector/banners_controller.rb', line 7

def index
  @banners = Banner.all
  
  respond_to do |format|
    format.html # index.html.erb
    format.json { render :json => @banners }
  end
end

#newObject

GET /banners/new GET /banners/new.json



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'app/controllers/advert_selector/banners_controller.rb', line 31

def new
  if params[:duplicate_id] && banner_dup = Banner.find_by_id(params[:duplicate_id])
    @banner = banner_dup.dup
    @banner.name += " (copy)"
    @banner.confirmed = false

    banner_dup.helper_items.each do |hi|
      @banner.helper_items << hi.dup
    end

  else
    @banner = Banner.new
    @banner.start_time = Time.now.at_midnight
    @banner.end_time = 1.week.from_now.end_of_day
  end

  respond_to do |format|
    format.html # new.html.erb
    format.json { render :json => @banner }
  end
end

#showObject

GET /banners/1 GET /banners/1.json



18
19
20
21
22
23
24
25
26
27
# File 'app/controllers/advert_selector/banners_controller.rb', line 18

def show
  redirect_to edit_banner_url(params[:id])

  #@banner = Banner.find(params[:id])
  #
  #respond_to do |format|
  #  format.html # show.html.erb
  #  format.json { render :json => @banner }
  #end
end

#updateObject

PUT /banners/1 PUT /banners/1.json



76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'app/controllers/advert_selector/banners_controller.rb', line 76

def update
  @banner = Banner.find(params[:id])
  
  respond_to do |format|
    if @banner.update_attributes(params[:banner])
      format.html { redirect_to @banner, :notice => 'Banner was successfully updated.' }
      format.json { head :no_content }
    else
      format.html { render :action => "edit" }
      format.json { render :json => @banner.errors, :status => :unprocessable_entity }
    end
  end
end

#update_running_view_countObject



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'app/controllers/advert_selector/banners_controller.rb', line 91

def update_running_view_count
  @banner = Banner.find(params[:id])
  if !(@count = params['banner']["running_view_count"]).blank?
    @count = @count.to_i
    Banner.where(:id => @banner.id).update_all(:running_view_count => @count)
    50.times do
      # We are trying to make sure that no other process will overwrite this value
      Rails.cache.write(@banner.cache_key, @count, :expires_in => 2.weeks)
      sleep(0.02)
    end
    Banner.where(:id => @banner.id).update_all(:running_view_count => @count)
    #@banner[:running_view_count] = @count
    #@banner.save
  end

  redirect_to @banner
end