spree_core 0.60.2 → 0.60.3
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 -1
- data/app/controllers/admin/general_settings_controller.rb +9 -0
- data/app/models/app_configuration.rb +3 -0
- 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 +5 -1
- 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/version.rb +1 -1
- data/public/javascripts/admin.js +6 -0
- data/public/stylesheets/admin/admin.css +29 -0
- metadata +6 -4
@@ -1,12 +1,42 @@
|
|
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'
|
7
9
|
|
8
10
|
protected
|
9
|
-
|
11
|
+
def check_alerts
|
12
|
+
return unless current_user and should_check_alerts?
|
13
|
+
|
14
|
+
unless session.has_key? :alerts
|
15
|
+
begin
|
16
|
+
session[:alerts] = Spree::Alert.current(request.host)
|
17
|
+
filter_dismissed_alerts
|
18
|
+
Spree::Config.set :last_check_for_spree_alerts => DateTime.now.to_s
|
19
|
+
rescue
|
20
|
+
session[:alerts] = nil
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def should_check_alerts?
|
26
|
+
return false if not Spree::Config[:check_for_spree_alerts]
|
27
|
+
|
28
|
+
last_check = Spree::Config[:last_check_for_spree_alerts]
|
29
|
+
return true if last_check.blank?
|
30
|
+
|
31
|
+
DateTime.parse(last_check) < 12.hours.ago
|
32
|
+
end
|
33
|
+
|
34
|
+
def filter_dismissed_alerts
|
35
|
+
return unless session[:alerts]
|
36
|
+
dismissed = (Spree::Config[:dismissed_spree_alerts] || '').split(',')
|
37
|
+
session[:alerts].reject! { |a| dismissed.include? a.id.to_s }
|
38
|
+
end
|
39
|
+
|
10
40
|
def flash_message_for(object, event_sym)
|
11
41
|
resource_desc = object.class.model_name.human
|
12
42
|
resource_desc += " \"#{object.name}\"" if object.respond_to?(:name)
|
@@ -10,4 +10,13 @@ class Admin::GeneralSettingsController < Admin::BaseController
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
+
def dismiss_alert
|
14
|
+
if request.xhr? and params[:alert_id]
|
15
|
+
dismissed = Spree::Config[:dismissed_spree_alerts] || ''
|
16
|
+
Spree::Config.set :dismissed_spree_alerts => dismissed.split(',').push(params[:alert_id]).join(',')
|
17
|
+
filter_dismissed_alerts
|
18
|
+
render :nothing => true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
13
22
|
end
|
@@ -35,6 +35,9 @@ class AppConfiguration < Configuration
|
|
35
35
|
preference :use_content_controller, :boolean, :default => true
|
36
36
|
preference :allow_checkout_on_gateway_error, :boolean, :default => false
|
37
37
|
preference :select_taxons_from_tree, :boolean, :default => false # provide opportunity to select taxons from tree instead of search with autocomplete
|
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
|
|
@@ -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
|
+
|
@@ -31,6 +31,14 @@
|
|
31
31
|
</label>
|
32
32
|
</p>
|
33
33
|
|
34
|
+
<p>
|
35
|
+
<label>
|
36
|
+
<input name="preferences[check_for_spree_alerts]" type="hidden" value="0" />
|
37
|
+
<%= check_box_tag('preferences[check_for_spree_alerts]', "1", Spree::Config[:check_for_spree_alerts]) %>
|
38
|
+
<%= t('spree_alert_checking') %>
|
39
|
+
</label>
|
40
|
+
</p>
|
41
|
+
|
34
42
|
<p class="form-buttons">
|
35
43
|
<%= button t('update') %>
|
36
44
|
<%= t("or") %> <%= link_to t("cancel"), admin_general_settings_url %>
|
@@ -23,7 +23,11 @@
|
|
23
23
|
<tr>
|
24
24
|
<td colspan="2">
|
25
25
|
<%= (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")) %>
|
26
|
-
|
26
|
+
</td>
|
27
|
+
</tr>
|
28
|
+
<tr>
|
29
|
+
<td colspan="2">
|
30
|
+
<%= (Spree::Config[:check_for_spree_alerts] ? t("spree_alert_checking") : t("spree_alert_not_checking")) %>
|
27
31
|
</tr>
|
28
32
|
</table>
|
29
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
@@ -907,6 +907,8 @@ en:
|
|
907
907
|
ssl_will_be_used_in_production_mode: "SSL will be used in production mode"
|
908
908
|
ssl_will_not_be_used_in_development_and_test_modes: "SSL will not be used in development and test mode if necessary."
|
909
909
|
ssl_will_not_be_used_in_production_mode: "SSL will not be used in production mode"
|
910
|
+
spree_alert_checking: "Check for Spree security and release alerts"
|
911
|
+
spree_alert_not_checking: "Not checking for Spree security and release alerts"
|
910
912
|
start: Start
|
911
913
|
start_date: Valid from
|
912
914
|
state: State
|
data/config/routes.rb
CHANGED
data/lib/spree_core/version.rb
CHANGED
data/public/javascripts/admin.js
CHANGED
@@ -583,3 +583,32 @@ span.handle{
|
|
583
583
|
width:14px;
|
584
584
|
height:15px;
|
585
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
|
+
}
|
614
|
+
|
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: 233
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 60
|
9
|
-
-
|
10
|
-
version: 0.60.
|
9
|
+
- 3
|
10
|
+
version: 0.60.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Sean Schofield
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-10-
|
18
|
+
date: 2011-10-21 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
@@ -385,6 +385,7 @@ files:
|
|
385
385
|
- app/models/shipment.rb
|
386
386
|
- app/models/shipping_category.rb
|
387
387
|
- app/models/shipping_method.rb
|
388
|
+
- app/models/spree/alert.rb
|
388
389
|
- app/models/state.rb
|
389
390
|
- app/models/state_event.rb
|
390
391
|
- app/models/tax_category.rb
|
@@ -509,6 +510,7 @@ files:
|
|
509
510
|
- app/views/admin/shared/_additional_field.html.erb
|
510
511
|
- app/views/admin/shared/_address.html.erb
|
511
512
|
- app/views/admin/shared/_address_form.html.erb
|
513
|
+
- app/views/admin/shared/_alert.html.erb
|
512
514
|
- app/views/admin/shared/_calculator_fields.html.erb
|
513
515
|
- app/views/admin/shared/_configuration_menu.html.erb
|
514
516
|
- app/views/admin/shared/_destroy.js.erb
|