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.
@@ -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
- </td>
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
+
@@ -45,6 +45,7 @@
45
45
  <div class="flash notice"><%= self.notice %></div>
46
46
  <% end %>
47
47
 
48
+ <%= render :partial => 'admin/shared/alert', :collection => session[:alerts] %>
48
49
 
49
50
  <%= yield %>
50
51
 
@@ -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
@@ -159,7 +159,11 @@ Rails.application.routes.draw do
159
159
  end
160
160
  end
161
161
 
162
- resource :general_settings
162
+ resource :general_settings do
163
+ collection do
164
+ post :dismiss_alert
165
+ end
166
+ end
163
167
 
164
168
  resources :taxonomies do
165
169
  member do
@@ -1,5 +1,5 @@
1
1
  module Spree
2
2
  def self.version
3
- "0.60.2"
3
+ "0.60.3"
4
4
  end
5
5
  end
@@ -224,3 +224,9 @@ jQuery(".observe_field").live('change', function() {
224
224
  }
225
225
  );
226
226
  });
227
+
228
+ jQuery(document).ready(function() {
229
+ $('div.alert a.dismiss').click(function() {
230
+ $(this).parent().fadeOut();
231
+ });
232
+ });
@@ -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: 235
4
+ hash: 233
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 60
9
- - 2
10
- version: 0.60.2
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-05 00:00:00 Z
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