spree_core 0.40.3 → 0.40.4
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.
- data/app/controllers/admin/base_controller.rb +31 -0
- data/app/models/app_configuration.rb +3 -0
- data/app/models/product_group.rb +8 -4
- data/app/models/spree/alert.rb +13 -0
- data/app/views/admin/general_settings/edit.html.erb +8 -0
- data/app/views/admin/general_settings/show.html.erb +10 -5
- data/app/views/admin/shared/_alert.html.erb +6 -0
- data/app/views/layouts/admin.html.erb +1 -0
- data/config/locales/en.yml +2 -0
- data/config/routes.rb +5 -1
- data/lib/spree_core.rb +1 -1
- data/public/javascripts/admin.js +6 -0
- data/public/stylesheets/admin/admin.css +34 -0
- metadata +7 -7
@@ -1,6 +1,8 @@
|
|
1
1
|
class Admin::BaseController < Spree::BaseController
|
2
2
|
ssl_required
|
3
3
|
|
4
|
+
before_filter :check_alerts if Rails.env.production?
|
5
|
+
|
4
6
|
helper :search
|
5
7
|
helper 'admin/navigation'
|
6
8
|
layout 'admin'
|
@@ -8,6 +10,35 @@ class Admin::BaseController < Spree::BaseController
|
|
8
10
|
before_filter :parse_date_params
|
9
11
|
|
10
12
|
protected
|
13
|
+
def check_alerts
|
14
|
+
return unless current_user and should_check_alerts?
|
15
|
+
|
16
|
+
unless session.has_key? :alerts
|
17
|
+
begin
|
18
|
+
session[:alerts] = Spree::Alert.current(request.host)
|
19
|
+
filter_dismissed_alerts
|
20
|
+
Spree::Config.set :last_check_for_spree_alerts => DateTime.now.to_s
|
21
|
+
rescue
|
22
|
+
session[:alerts] = nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def should_check_alerts?
|
28
|
+
return false if not Spree::Config[:check_for_spree_alerts]
|
29
|
+
|
30
|
+
last_check = Spree::Config[:last_check_for_spree_alerts]
|
31
|
+
return true if last_check.blank?
|
32
|
+
|
33
|
+
DateTime.parse(last_check) < 12.hours.ago
|
34
|
+
end
|
35
|
+
|
36
|
+
def filter_dismissed_alerts
|
37
|
+
return unless session[:alerts]
|
38
|
+
dismissed = (Spree::Config[:dismissed_spree_alerts] || '').split(',')
|
39
|
+
session[:alerts].reject! { |a| dismissed.include? a.id.to_s }
|
40
|
+
end
|
41
|
+
|
11
42
|
def render_js_for_destroy
|
12
43
|
render :partial => "/admin/shared/destroy"
|
13
44
|
flash.notice = nil
|
@@ -35,6 +35,9 @@ class AppConfiguration < Configuration
|
|
35
35
|
preference :cache_static_content, :boolean, :default => true
|
36
36
|
preference :use_content_controller, :boolean, :default => true
|
37
37
|
preference :allow_checkout_on_gateway_error, :boolean, :default => false
|
38
|
+
preference :check_for_spree_alerts, :boolean, :default => true
|
39
|
+
preference :dismissed_spree_alerts, :string, :default => ''
|
40
|
+
preference :last_check_for_spree_alerts, :string, :default => nil
|
38
41
|
|
39
42
|
validates :name, :presence => true, :uniqueness => true
|
40
43
|
|
data/app/models/product_group.rb
CHANGED
@@ -90,10 +90,14 @@ class ProductGroup < ActiveRecord::Base
|
|
90
90
|
end
|
91
91
|
|
92
92
|
def add_scope(scope_name, arguments=[])
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
93
|
+
if scope_name.to_s !~ /eval|send|system|[^a-z0-9_!?]/
|
94
|
+
self.product_scopes << ProductScope.new({
|
95
|
+
:name => scope_name.to_s,
|
96
|
+
:arguments => [*arguments]
|
97
|
+
})
|
98
|
+
else
|
99
|
+
raise ArgumentError.new("'#{scope_name}` can't be used as scope")
|
100
|
+
end
|
97
101
|
self
|
98
102
|
end
|
99
103
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class Spree::Alert < ActiveResource::Base
|
2
|
+
self.site = "http://alerts.spreecommerce.com/"
|
3
|
+
self.format = :json
|
4
|
+
|
5
|
+
def self.current(host)
|
6
|
+
find(:all, :params => { :version => Spree.version,
|
7
|
+
:name => Spree::Config[:site_name],
|
8
|
+
:host => host,
|
9
|
+
:rails_env => Rails.env,
|
10
|
+
:rails_version => Rails.version })
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
@@ -28,6 +28,14 @@
|
|
28
28
|
</label>
|
29
29
|
</p>
|
30
30
|
|
31
|
+
<p>
|
32
|
+
<label>
|
33
|
+
<input name="preferences[check_for_spree_alerts]" type="hidden" value="0" />
|
34
|
+
<%= check_box_tag('preferences[check_for_spree_alerts]', "1", Spree::Config[:check_for_spree_alerts]) %>
|
35
|
+
<%= t('spree_alert_checking') %>
|
36
|
+
</label>
|
37
|
+
</p>
|
38
|
+
|
31
39
|
<p class="form-buttons">
|
32
40
|
<%= button t('update') %>
|
33
41
|
<%= t("or") %> <%= link_to t("cancel"), admin_general_settings_url %>
|
@@ -4,25 +4,30 @@
|
|
4
4
|
|
5
5
|
<table>
|
6
6
|
<tr>
|
7
|
-
<th scope="row"><%= t("site_name") %>:</th>
|
7
|
+
<th scope="row"><%= t("site_name") %>:</th>
|
8
8
|
<td><%= Spree::Config[:site_name] %></td>
|
9
9
|
</tr>
|
10
10
|
<tr>
|
11
|
-
<th scope="row"><%= t("site_url") %>:</th>
|
11
|
+
<th scope="row"><%= t("site_url") %>:</th>
|
12
12
|
<td><%= Spree::Config[:site_url] %></td>
|
13
13
|
</tr>
|
14
14
|
<tr>
|
15
15
|
<td colspan="2">
|
16
|
-
<%= (Spree::Config[:allow_ssl_in_production] ? t("ssl_will_be_used_in_production_mode") : t("ssl_will_not_be_used_in_production_mode")) %>
|
16
|
+
<%= (Spree::Config[:allow_ssl_in_production] ? t("ssl_will_be_used_in_production_mode") : t("ssl_will_not_be_used_in_production_mode")) %>
|
17
17
|
</td>
|
18
18
|
</tr>
|
19
19
|
<tr>
|
20
20
|
<td colspan="2">
|
21
21
|
<%= (Spree::Config[:allow_ssl_in_development_and_test] ? t("ssl_will_be_used_in_development_and_test_modes") : t("ssl_will_not_be_used_in_development_and_test_modes")) %>
|
22
|
-
</td>
|
22
|
+
</td>
|
23
|
+
</tr>
|
24
|
+
<tr>
|
25
|
+
<td colspan="2">
|
26
|
+
<%= (Spree::Config[:check_for_spree_alerts] ? t("spree_alert_checking") : t("spree_alert_not_checking")) %>
|
27
|
+
</td>
|
23
28
|
</tr>
|
24
29
|
</table>
|
25
30
|
|
26
|
-
<p><%= link_to_with_icon 'edit', t("edit"), edit_admin_general_settings_path %></p>
|
31
|
+
<p><%= link_to_with_icon 'edit', t("edit"), edit_admin_general_settings_path, :id => 'admin_general_settings_link' %></p>
|
27
32
|
|
28
33
|
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<div class="alert <%= alert.severity.downcase %>">
|
2
|
+
<%= alert.message %> <%= link_to alert.url_name, alert.url if alert.url %>
|
3
|
+
<%= link_to 'X', dismiss_alert_admin_general_settings_path(:alert_id => alert.id),
|
4
|
+
:remote => true, :method => :post, :class => 'dismiss' %>
|
5
|
+
</div>
|
6
|
+
|
data/config/locales/en.yml
CHANGED
@@ -881,6 +881,8 @@ en:
|
|
881
881
|
ssl_will_be_used_in_production_mode: "SSL will be used in production mode"
|
882
882
|
ssl_will_not_be_used_in_development_and_test_modes: "SSL will not be used in development and test mode if necessary."
|
883
883
|
ssl_will_not_be_used_in_production_mode: "SSL will not be used in production mode"
|
884
|
+
spree_alert_checking: "Check for Spree security and release alerts"
|
885
|
+
spree_alert_not_checking: "Not checking for Spree security and release alerts"
|
884
886
|
start: Start
|
885
887
|
start_date: Valid from
|
886
888
|
state: State
|
data/config/routes.rb
CHANGED
data/lib/spree_core.rb
CHANGED
data/public/javascripts/admin.js
CHANGED
@@ -577,3 +577,37 @@ table#product_scopes tr td table tr td {
|
|
577
577
|
}
|
578
578
|
|
579
579
|
|
580
|
+
span.handle{
|
581
|
+
background-image: url(../../images/reorder.jpg);
|
582
|
+
display: inline-block;
|
583
|
+
width:14px;
|
584
|
+
height:15px;
|
585
|
+
}
|
586
|
+
|
587
|
+
.alert {
|
588
|
+
-moz-border-radius: 5px;
|
589
|
+
-webkit-border-radius: 5px;
|
590
|
+
border-radius: 5px;
|
591
|
+
font-size: 1.3em;
|
592
|
+
margin-bottom: 1em;
|
593
|
+
padding: 0.8em;
|
594
|
+
}
|
595
|
+
.alert a.dismiss {
|
596
|
+
float:right;
|
597
|
+
font-size: 0.8em;
|
598
|
+
}
|
599
|
+
.alert.release {
|
600
|
+
background: #ccddff url(../images/shadow_top.png) 0px -50px repeat-x;
|
601
|
+
color: #556699;
|
602
|
+
border: 1px solid #99aacc;
|
603
|
+
}
|
604
|
+
.alert.security {
|
605
|
+
background: #f4b4b4 url(../images/shadow_top.png) 0px -50px repeat-x;
|
606
|
+
color: #000000;
|
607
|
+
border: 1px solid #e75b5b;
|
608
|
+
}
|
609
|
+
.alert.news {
|
610
|
+
background: #ccffd4 url(../images/shadow_top.png) 0px -50px repeat-x;
|
611
|
+
color: #000000;
|
612
|
+
border: 1px solid #66ff7e;
|
613
|
+
}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 183
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 40
|
9
|
-
-
|
10
|
-
version: 0.40.
|
9
|
+
- 4
|
10
|
+
version: 0.40.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Sean Schofield
|
@@ -15,8 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
19
|
-
default_executable:
|
18
|
+
date: 2011-10-21 00:00:00 Z
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
21
|
name: acts_as_list
|
@@ -369,6 +368,7 @@ files:
|
|
369
368
|
- app/models/shipment.rb
|
370
369
|
- app/models/shipping_category.rb
|
371
370
|
- app/models/shipping_method.rb
|
371
|
+
- app/models/spree/alert.rb
|
372
372
|
- app/models/state.rb
|
373
373
|
- app/models/state_event.rb
|
374
374
|
- app/models/state_monitor.rb
|
@@ -497,6 +497,7 @@ files:
|
|
497
497
|
- app/views/admin/shared/_address.html.erb
|
498
498
|
- app/views/admin/shared/_address_form.html.erb
|
499
499
|
- app/views/admin/shared/_adjustments_table.html.erb
|
500
|
+
- app/views/admin/shared/_alert.html.erb
|
500
501
|
- app/views/admin/shared/_calculator_fields.html.erb
|
501
502
|
- app/views/admin/shared/_configuration_menu.html.erb
|
502
503
|
- app/views/admin/shared/_destroy.js.erb
|
@@ -1055,7 +1056,6 @@ files:
|
|
1055
1056
|
- public/stylesheets/jquery.autocomplete.css
|
1056
1057
|
- public/stylesheets/scaffold.css
|
1057
1058
|
- public/stylesheets/screen.css
|
1058
|
-
has_rdoc: true
|
1059
1059
|
homepage: http://spreecommerce.com
|
1060
1060
|
licenses: []
|
1061
1061
|
|
@@ -1087,7 +1087,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1087
1087
|
requirements:
|
1088
1088
|
- none
|
1089
1089
|
rubyforge_project: spree_core
|
1090
|
-
rubygems_version: 1.
|
1090
|
+
rubygems_version: 1.8.10
|
1091
1091
|
signing_key:
|
1092
1092
|
specification_version: 3
|
1093
1093
|
summary: Core e-commerce functionality for the Spree project.
|