tb_banners 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/images/admin/banners/banners.png +0 -0
- data/app/assets/javascripts/admin/banners/banners.js +26 -16
- data/app/assets/stylesheets/admin/banners/banners.css.scss +27 -0
- data/app/controllers/admin/banners_controller.rb +2 -2
- data/app/helpers/spud_banners_helper.rb +36 -6
- data/app/models/spud_banner.rb +10 -2
- data/app/views/admin/banner_sets/show.html.erb +15 -4
- data/app/views/admin/banners/_banner.html.erb +27 -7
- data/app/views/admin/banners/_form.html.erb +41 -27
- data/db/migrate/20140721142719_add_start_and_end_dates_to_spud_banners.rb +6 -0
- data/lib/spud_banners/version.rb +1 -1
- metadata +4 -4
- data/app/assets/images/admin/banners/banners@2x.png +0 -0
- data/app/assets/stylesheets/admin/banners/banners.css +0 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad452499d29ec9a3057ccd4cb8a36c033d63092d
|
4
|
+
data.tar.gz: e036c409580661b5e0de416b6742749fdbae9ba8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b7ba0b3b26f430ef451a377302ae412b7a9cbbf2cb3e2896b5fbdac9b9848359852a2805c18b6175c7a90fc766b33f8fc06935d94b6914c06ab8bb37bc3692d
|
7
|
+
data.tar.gz: 4af7f96c8d9b8724636bfea43af11c2bc1fe520ab03d0e0615b7d28c5d679b7bd937c25db52bc52568147a2149c2942bef5436de29dd88bde09d1f7af5fb1115
|
Binary file
|
@@ -14,16 +14,25 @@ spud.admin.banners = new function(){
|
|
14
14
|
if(typeof(FormData) != 'undefined'){
|
15
15
|
html5upload = true;
|
16
16
|
}
|
17
|
-
$('.
|
18
|
-
$('.
|
19
|
-
$('.
|
17
|
+
$('.admin-banner-set-item-add').on('click', self.clickedAddNewBanner);
|
18
|
+
$('.admin-banner-set-items-container').on('click', '.admin-banner-set-item-edit', self.clickedEditBanner);
|
19
|
+
$('.admin-banner-set-items-container').on('click', '.admin-banner-set-item-delete', self.clickedDeleteBanner);
|
20
20
|
$('.modal-body').on('submit', '.spud_banner_form', self.submittedBannerForm);
|
21
21
|
|
22
|
-
$('.
|
23
|
-
stop: self.sortedBanners
|
22
|
+
$('.admin-banner-set-items-container').sortable({
|
23
|
+
stop: self.sortedBanners,
|
24
|
+
helper: fixHelper
|
24
25
|
});
|
25
26
|
};
|
26
27
|
|
28
|
+
// http://www.foliotek.com/devblog/make-table-rows-sortable-using-jquery-ui-sortable/
|
29
|
+
var fixHelper = function(e, ui) {
|
30
|
+
ui.children().each(function() {
|
31
|
+
$(this).width($(this).width());
|
32
|
+
});
|
33
|
+
return ui;
|
34
|
+
};
|
35
|
+
|
27
36
|
self.clickedAddNewBanner = function(e){
|
28
37
|
e.preventDefault();
|
29
38
|
bannerEditId = false;
|
@@ -41,7 +50,7 @@ spud.admin.banners = new function(){
|
|
41
50
|
|
42
51
|
self.clickedEditBanner = function(e){
|
43
52
|
e.preventDefault();
|
44
|
-
bannerEditId = parseInt($(this).parents('.
|
53
|
+
bannerEditId = parseInt($(this).parents('.admin-banner-set-item').attr('data-id'), 10);
|
45
54
|
$.ajax({
|
46
55
|
url: $(this).attr('href'),
|
47
56
|
dataType: 'html',
|
@@ -62,7 +71,7 @@ spud.admin.banners = new function(){
|
|
62
71
|
type: 'post',
|
63
72
|
data: {'_method':'delete'},
|
64
73
|
complete: function(jqXHR, textStatus){
|
65
|
-
var parent = el.parents('.
|
74
|
+
var parent = el.parents('.admin-banner-set-item');
|
66
75
|
parent.fadeOut(200, function(){
|
67
76
|
parent.remove();
|
68
77
|
});
|
@@ -79,12 +88,13 @@ spud.admin.banners = new function(){
|
|
79
88
|
|
80
89
|
var form = $(this);
|
81
90
|
var fd = new FormData();
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
91
|
+
|
92
|
+
$('input[type=text], input[type=hidden], select').each(function(index, element){
|
93
|
+
var input = $(element);
|
94
|
+
var name = input.attr('name');
|
95
|
+
var value = input.val();
|
96
|
+
fd.append(name, value);
|
97
|
+
});
|
88
98
|
|
89
99
|
var richText = form.find('.spud_banner_rich_text');
|
90
100
|
if(richText){
|
@@ -142,11 +152,11 @@ spud.admin.banners = new function(){
|
|
142
152
|
// Non-html5 upload
|
143
153
|
self.onLegacyUploadComplete = function(html){
|
144
154
|
if(bannerEditId){
|
145
|
-
var item = $('.
|
155
|
+
var item = $('.admin-banner-set-item[data-id="'+bannerEditId+'"]');
|
146
156
|
item.replaceWith(html);
|
147
157
|
}
|
148
158
|
else{
|
149
|
-
$('.
|
159
|
+
$('.admin-banner-set-items-container').append(html);
|
150
160
|
}
|
151
161
|
hideModalDialog();
|
152
162
|
};
|
@@ -157,7 +167,7 @@ spud.admin.banners = new function(){
|
|
157
167
|
|
158
168
|
self.sortedBanners = function(e, ui){
|
159
169
|
var ids = [];
|
160
|
-
$('.
|
170
|
+
$('.admin-banner-set-item').each(function(){
|
161
171
|
ids.push($(this).attr('data-id'));
|
162
172
|
});
|
163
173
|
$.ajax({
|
@@ -0,0 +1,27 @@
|
|
1
|
+
// Banner Management
|
2
|
+
.admin-banner-set-items-container{
|
3
|
+
|
4
|
+
}
|
5
|
+
.admin-banner-set-item{
|
6
|
+
cursor: move;
|
7
|
+
}
|
8
|
+
.admin-banner-set-item.ui-sortable-helper{
|
9
|
+
width: 940px;
|
10
|
+
display: block;
|
11
|
+
}
|
12
|
+
.admin-banner-set-item img{
|
13
|
+
display: block;
|
14
|
+
}
|
15
|
+
.admin-banner-set-item-nowrap{
|
16
|
+
white-space: nowrap;
|
17
|
+
}
|
18
|
+
|
19
|
+
// Banner Form
|
20
|
+
.spud_banner_upload_progress{
|
21
|
+
display: none;
|
22
|
+
}
|
23
|
+
.controls-banner-date-selects{
|
24
|
+
select{
|
25
|
+
width: 100px;
|
26
|
+
}
|
27
|
+
}
|
@@ -8,7 +8,7 @@ class Admin::BannersController < Admin::ApplicationController
|
|
8
8
|
layout false
|
9
9
|
|
10
10
|
def new
|
11
|
-
@banner = @banner_set.banners.new
|
11
|
+
@banner = @banner_set.banners.new(:start_date => Date.today)
|
12
12
|
respond_with @banner
|
13
13
|
end
|
14
14
|
|
@@ -102,7 +102,7 @@ private
|
|
102
102
|
end
|
103
103
|
|
104
104
|
def banner_params
|
105
|
-
params.require(:spud_banner).permit(:banner, :link_to, :link_target, :title, :alt, :sort_order, :rich_text)
|
105
|
+
params.require(:spud_banner).permit(:banner, :link_to, :link_target, :title, :alt, :sort_order, :rich_text, :start_date, :end_date)
|
106
106
|
end
|
107
107
|
|
108
108
|
end
|
@@ -1,5 +1,13 @@
|
|
1
1
|
module SpudBannersHelper
|
2
2
|
|
3
|
+
# Returns banner html for a given identifier
|
4
|
+
# Generated HTML will be cached if your application uses fragment caching
|
5
|
+
#
|
6
|
+
# * set_or_identifier: A reference to a SpudBannerSet, or the name of a known banner set passed as a symbol (ie, :home)
|
7
|
+
# * options:
|
8
|
+
# - limit: Max number of banners to return
|
9
|
+
# - background_image: Pass true to return the banners as CSS background-image properties rather than <img/> tags
|
10
|
+
#
|
3
11
|
def spud_banners_for_set(set_or_identifier, options = {})
|
4
12
|
if set_or_identifier.is_a?(SpudBannerSet)
|
5
13
|
banner_set = set_or_identifier
|
@@ -12,22 +20,42 @@ module SpudBannersHelper
|
|
12
20
|
end
|
13
21
|
end
|
14
22
|
|
23
|
+
# Returns banner html for a given banner_set
|
24
|
+
#
|
25
|
+
# * banner_set: A reference to a SpudBannerSet
|
26
|
+
# * options:
|
27
|
+
# - limit: Max number of banners to return
|
28
|
+
# - background_image: Pass true to return the banners as CSS background-image properties rather than <img/> tags
|
29
|
+
#
|
15
30
|
def spud_banners_set_tag(banner_set, options = {})
|
16
|
-
|
31
|
+
background_image = options.delete(:background_image)
|
32
|
+
limit = options.delete(:limit) || false
|
33
|
+
banners_query = banner_set.banners.active.limit(limit)
|
17
34
|
if block_given?
|
18
|
-
|
35
|
+
banners_query.each do |banner|
|
19
36
|
yield(banner)
|
20
37
|
end
|
21
38
|
else
|
22
|
-
content_tag(:div, :class =>
|
23
|
-
|
24
|
-
|
39
|
+
content_tag(:div, :class => "spud-banner-set #{options[:wrapper_class]}", 'data-id' => banner_set.id) do
|
40
|
+
banners_query.map do |banner|
|
41
|
+
if background_image
|
42
|
+
concat(content_tag(:div, :class => "spud-banner #{options[:banner_class]}", 'data-id' => banner.id, :style => "background:url('#{banner.banner.url(:banner)}') center center / 100% auto no-repeat;"){
|
43
|
+
if banner.rich_text
|
44
|
+
content_tag :div, raw(banner.rich_text), :class => 'spud-banner-rich-text'
|
45
|
+
end
|
46
|
+
})
|
47
|
+
else
|
48
|
+
concat(content_tag(:div, :class => "spud-banner #{options[:banner_class]}", 'data-id' => banner.id){ spud_banner_tag(banner, options) })
|
49
|
+
end
|
25
50
|
end
|
26
51
|
end
|
27
52
|
end
|
28
53
|
end
|
29
54
|
|
30
|
-
|
55
|
+
# Returns an HTML tag for a single banner
|
56
|
+
# May return either an <img/> or an <a/> depending on the banner
|
57
|
+
#
|
58
|
+
def spud_banner_tag(banner, options={})
|
31
59
|
if banner.link_to.blank?
|
32
60
|
spud_banner_image_tag(banner)
|
33
61
|
else
|
@@ -37,6 +65,8 @@ module SpudBannersHelper
|
|
37
65
|
end
|
38
66
|
end
|
39
67
|
|
68
|
+
# Returns an HTML <img/> tag for a single banner
|
69
|
+
#
|
40
70
|
def spud_banner_image_tag(banner)
|
41
71
|
image_tag(banner.banner.url(:banner), :alt => banner.alt, :title => banner.title)
|
42
72
|
end
|
data/app/models/spud_banner.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
class SpudBanner < ActiveRecord::Base
|
2
2
|
belongs_to :owner, :class_name => 'SpudBannerSet', :foreign_key => 'spud_banner_set_id', :inverse_of => :banners, :touch => true
|
3
3
|
|
4
|
+
scope :active, ->{
|
5
|
+
where('(start_date IS NULL OR start_date <= ?) AND (end_date IS NULL OR end_date >= ?)', Date.today, Date.today)
|
6
|
+
}
|
7
|
+
|
4
8
|
has_attached_file :banner,
|
5
9
|
:styles => lambda { |attachment| attachment.instance.dynamic_styles },
|
6
10
|
:convert_options => {
|
7
|
-
:
|
11
|
+
:tiny => '-strip -density 72x72',
|
8
12
|
:banner => '-strip -density 72x72'
|
9
13
|
},
|
10
14
|
:storage => Spud::Banners.paperclip_storage,
|
@@ -18,7 +22,7 @@ class SpudBanner < ActiveRecord::Base
|
|
18
22
|
|
19
23
|
def dynamic_styles
|
20
24
|
styles = {
|
21
|
-
:
|
25
|
+
:tiny => '150x150'
|
22
26
|
}
|
23
27
|
owner_style = nil
|
24
28
|
if self.owner
|
@@ -33,4 +37,8 @@ class SpudBanner < ActiveRecord::Base
|
|
33
37
|
return owner.name
|
34
38
|
end
|
35
39
|
|
40
|
+
def is_expired?
|
41
|
+
return end_date.present? && end_date < Date.today
|
42
|
+
end
|
43
|
+
|
36
44
|
end
|
@@ -1,10 +1,21 @@
|
|
1
1
|
<% content_for :data_controls do %>
|
2
|
-
<%= link_to 'Upload Banner', new_admin_banner_set_banner_path(@banner_set), :class => 'btn btn-primary
|
2
|
+
<%= link_to 'Upload Banner', new_admin_banner_set_banner_path(@banner_set), :class => 'btn btn-primary admin-banner-set-item-add' %>
|
3
3
|
<% end %>
|
4
4
|
|
5
|
-
<
|
6
|
-
|
7
|
-
|
5
|
+
<table class="table table-striped">
|
6
|
+
<thead>
|
7
|
+
<tr>
|
8
|
+
<th>Banner</th>
|
9
|
+
<th>Start Date</th>
|
10
|
+
<th>End Date</th>
|
11
|
+
<% if !@banner_set.has_rich_text %>
|
12
|
+
<th>Links to</th>
|
13
|
+
<% end %>
|
14
|
+
</tr>
|
15
|
+
</thead>
|
16
|
+
<tbody class="admin-banner-set-items-container">
|
17
|
+
<%= render :partial => 'admin/banners/banner', :collection => @banner_set.banners %>
|
18
|
+
</tbody>
|
8
19
|
|
9
20
|
<script>
|
10
21
|
$(document).ready(spud.admin.banners.init);
|
@@ -1,7 +1,27 @@
|
|
1
|
-
<%= content_tag :
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
</
|
7
|
-
|
1
|
+
<%= content_tag :tr, 'data-id' => banner.id, :class => 'admin-banner-set-item' do %>
|
2
|
+
<td width="200">
|
3
|
+
<%= link_to banner.banner.url(:banner), :target => :blank do %>
|
4
|
+
<%= image_tag banner.banner.url(:tiny) %>
|
5
|
+
<% end %>
|
6
|
+
</td>
|
7
|
+
<td><%= banner.start_date.try(:strftime, '%m/%d/%Y') %></td>
|
8
|
+
<td class="admin-banner-set-item-nowrap">
|
9
|
+
<%= banner.end_date.try(:strftime, '%m/%d/%Y') %>
|
10
|
+
<% if banner.is_expired? %>
|
11
|
+
<span class="label">Expired</span>
|
12
|
+
<% end %>
|
13
|
+
</td>
|
14
|
+
<% if !banner.owner.has_rich_text %>
|
15
|
+
<td>
|
16
|
+
<% if banner.link_to.present? %>
|
17
|
+
<%= link_to banner.link_to, banner.link_to, :target => :blank %>
|
18
|
+
<% else %>
|
19
|
+
n/a
|
20
|
+
<% end %>
|
21
|
+
</td>
|
22
|
+
<% end %>
|
23
|
+
<td class="admin-banner-set-item-nowrap">
|
24
|
+
<%= link_to 'Edit', edit_admin_banner_path(banner), :class => 'admin-banner-set-item-edit btn btn-mini' %>
|
25
|
+
<%= link_to 'Delete', admin_banner_path(banner), :class => 'admin-banner-set-item-delete btn btn-mini btn-danger' %>
|
26
|
+
</td>
|
27
|
+
<% end %>
|
@@ -3,33 +3,6 @@
|
|
3
3
|
<%= error_messages_for(f.object) %>
|
4
4
|
|
5
5
|
<fieldset>
|
6
|
-
<div class="control-group">
|
7
|
-
<%= f.label :link_to, 'Link to', :class => 'control-label' %>
|
8
|
-
<div class="controls">
|
9
|
-
<%= f.text_field :link_to %>
|
10
|
-
</div>
|
11
|
-
</div>
|
12
|
-
<div class="control-group">
|
13
|
-
<%= f.label :link_target, 'Open Link in', :class => 'control-label' %>
|
14
|
-
<div class="controls">
|
15
|
-
<%= f.select :link_target, options_for_select([
|
16
|
-
['Same Window', '_self'],
|
17
|
-
['New Window', '_blank']
|
18
|
-
], @banner.link_target) %>
|
19
|
-
</div>
|
20
|
-
</div>
|
21
|
-
<div class="control-group">
|
22
|
-
<%= f.label :title, 'Image Title', :class => 'control-label' %>
|
23
|
-
<div class="controls">
|
24
|
-
<%= f.text_field :title %>
|
25
|
-
</div>
|
26
|
-
</div>
|
27
|
-
<div class="control-group">
|
28
|
-
<%= f.label :alt, 'Alt Text', :class => 'control-label' %>
|
29
|
-
<div class="controls">
|
30
|
-
<%= f.text_field :alt %>
|
31
|
-
</div>
|
32
|
-
</div>
|
33
6
|
<div class="control-group">
|
34
7
|
<%= f.label :banner, 'Banner', :class => 'control-label' %>
|
35
8
|
<div class="controls">
|
@@ -43,7 +16,48 @@
|
|
43
16
|
<%= f.text_area :rich_text, :class => 'spud_banner_rich_text' %>
|
44
17
|
</div>
|
45
18
|
</div>
|
19
|
+
<% else %>
|
20
|
+
<div class="control-group">
|
21
|
+
<%= f.label :link_to, 'Link to', :class => 'control-label' %>
|
22
|
+
<div class="controls">
|
23
|
+
<%= f.text_field :link_to %>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
<div class="control-group">
|
27
|
+
<%= f.label :link_target, 'Open Link in', :class => 'control-label' %>
|
28
|
+
<div class="controls">
|
29
|
+
<%= f.select :link_target, options_for_select([
|
30
|
+
['Same Window', '_self'],
|
31
|
+
['New Window', '_blank']
|
32
|
+
], @banner.link_target) %>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
<div class="control-group">
|
36
|
+
<%= f.label :title, 'Image Title', :class => 'control-label' %>
|
37
|
+
<div class="controls">
|
38
|
+
<%= f.text_field :title %>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
<div class="control-group">
|
42
|
+
<%= f.label :alt, 'Alt Text', :class => 'control-label' %>
|
43
|
+
<div class="controls">
|
44
|
+
<%= f.text_field :alt %>
|
45
|
+
</div>
|
46
|
+
</div>
|
46
47
|
<% end %>
|
48
|
+
<div class="control-group">
|
49
|
+
<%= f.label :start_date, 'Start Date', :class => 'control-label' %>
|
50
|
+
<div class="controls controls-banner-date-selects">
|
51
|
+
<%= f.date_select :start_date, :start_year => Date.today.year %>
|
52
|
+
</div>
|
53
|
+
</div>
|
54
|
+
<div class="control-group">
|
55
|
+
<%= f.label :end_date, 'End Date', :class => 'control-label' %>
|
56
|
+
<div class="controls controls-banner-date-selects">
|
57
|
+
<%= f.date_select :end_date, :include_blank => true, :start_year => Date.today.year %>
|
58
|
+
<span class="help-block">Leave blank to never expire</span>
|
59
|
+
</div>
|
60
|
+
</div>
|
47
61
|
</fieldset>
|
48
62
|
|
49
63
|
<div class="progress progress-striped active spud_banner_upload_progress">
|
data/lib/spud_banners/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tb_banners
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Westlake
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -189,13 +189,12 @@ files:
|
|
189
189
|
- README.markdown
|
190
190
|
- Rakefile
|
191
191
|
- app/assets/images/admin/banners/banners.png
|
192
|
-
- app/assets/images/admin/banners/banners@2x.png
|
193
192
|
- app/assets/javascripts/admin/banners/application.js
|
194
193
|
- app/assets/javascripts/admin/banners/banner_sets.js
|
195
194
|
- app/assets/javascripts/admin/banners/banners.js
|
196
195
|
- app/assets/stylesheets/admin/banners/application.css
|
197
196
|
- app/assets/stylesheets/admin/banners/banner_sets.css
|
198
|
-
- app/assets/stylesheets/admin/banners/banners.css
|
197
|
+
- app/assets/stylesheets/admin/banners/banners.css.scss
|
199
198
|
- app/controllers/admin/banner_sets_controller.rb
|
200
199
|
- app/controllers/admin/banners_controller.rb
|
201
200
|
- app/helpers/admin/banner_sets_helper.rb
|
@@ -220,6 +219,7 @@ files:
|
|
220
219
|
- db/migrate/20121116195139_create_spud_banners.rb
|
221
220
|
- db/migrate/20121116195312_create_spud_banner_sets.rb
|
222
221
|
- db/migrate/20130614132846_add_rich_text_to_spud_banners.rb
|
222
|
+
- db/migrate/20140721142719_add_start_and_end_dates_to_spud_banners.rb
|
223
223
|
- lib/spud_banners/configuration.rb
|
224
224
|
- lib/spud_banners/engine.rb
|
225
225
|
- lib/spud_banners/liquid_tags.rb
|
Binary file
|
@@ -1,36 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Place all the styles related to the matching controller here.
|
3
|
-
They will automatically be included in application.css.
|
4
|
-
*/
|
5
|
-
|
6
|
-
/* Banner Management
|
7
|
-
-------------------- */
|
8
|
-
.spud_banner_set_banners_container{
|
9
|
-
|
10
|
-
}
|
11
|
-
.spud_banner_set_banner_item{
|
12
|
-
padding: 0 10px 10px 0;
|
13
|
-
position: relative;
|
14
|
-
display: inline-block;
|
15
|
-
cursor: move;
|
16
|
-
float: left;
|
17
|
-
}
|
18
|
-
.spud_banner_set_banner_item img{
|
19
|
-
display: inline-block;
|
20
|
-
}
|
21
|
-
.spud_banner_set_banner_item_actions{
|
22
|
-
position: absolute;
|
23
|
-
bottom: 10px;
|
24
|
-
right: 10px;
|
25
|
-
padding: 5px 10px;
|
26
|
-
background: rgba(0, 0, 0, 0.5);
|
27
|
-
}
|
28
|
-
.spud_banner_set_banner_item_actions a{
|
29
|
-
color: white;
|
30
|
-
}
|
31
|
-
|
32
|
-
/* Banner Form
|
33
|
-
--------------- */
|
34
|
-
.spud_banner_upload_progress{
|
35
|
-
display: none;
|
36
|
-
}
|