spud_core 0.8.0 → 0.8.1

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.
@@ -6,6 +6,10 @@
6
6
  //= require bootstrap/js/bootstrap
7
7
  //= require_self
8
8
  //= require_tree .
9
+
10
+ Spud = (typeof(Spud) == 'undefined') ? {} : Spud;
11
+ Spud.Admin = (typeof(Spud.Admin) == 'undefined') ? {} : Spud.Admin;
12
+
9
13
  $(document).ready(function() {
10
14
  $('#user_table').dataTable({
11
15
  "bJQueryUI": true,
@@ -47,8 +51,11 @@ $(document).ready(function() {
47
51
 
48
52
  $('input[type=submit].btn').click(function() {$(this).button('loading')});
49
53
 
50
-
51
- initFormTabs();
54
+ $('#multisite_switcher select').change(function() {
55
+ $(this).parent().submit();
56
+ // alert('test');
57
+ });
58
+ initFormTabs();
52
59
  } );
53
60
 
54
61
 
@@ -0,0 +1,80 @@
1
+ Spud = (typeof(Spud) == 'undefined') ? {} : Spud;
2
+ Spud.Admin = (typeof(Spud.Admin) == 'undefined') ? {} : Spud.Admin;
3
+
4
+ Spud.Admin.Dashboard = new function() {
5
+ var self=this;
6
+
7
+ self.editMode = false;
8
+ self.mouseIsDown = false;
9
+ self.init = function() {
10
+ // $('.admin_application').effect('shake',{},100,self.shakeLoop)
11
+ $('.admin_application').bind('mousedown',self.mouseDown);
12
+ $('.admin_application').bind('mouseup',self.mouseUp);
13
+
14
+ $('.admin_application').bind('click',self.mouseClick);
15
+ $('#dashboard-editsave').click(self.saveDashboard);
16
+ $('#dashboard-editcancel').click(self.cancelDashboard);
17
+ $('.sortable').sortable({disabled:true});
18
+ // $('.admin_application').addClass('jiggly')
19
+ // $('.admin_application').draggable();
20
+ }
21
+ self.mouseDown = function() {
22
+ self.mouseIsDown = true;
23
+ if(self.editMode == false)
24
+ {
25
+ setTimeout(function() {
26
+ if(self.mouseIsDown)
27
+ {
28
+ self.enableEditMode();
29
+ }
30
+ },1000);
31
+ }
32
+ }
33
+
34
+ self.mouseClick = function(evt) {
35
+ if(self.editMode)
36
+ {
37
+ evt.stopPropagation();
38
+ return false;
39
+ }
40
+ }
41
+ self.mouseUp = function() {
42
+ self.mouseIsDown = false;
43
+ }
44
+ self.enableEditMode = function() {
45
+ self.editMode = true;
46
+ $('.admin_application').addClass('jiggly');
47
+
48
+ $('.sortable').sortable("enable");
49
+ $('#dashboard-editmode').show();
50
+ }
51
+ self.saveDashboard = function() {
52
+ self.saveOrder();
53
+ self.disableEditMode();
54
+ }
55
+ self.cancelDashboard = function() {
56
+ $('.sortable').sortable("cancel");
57
+ self.disableEditMode();
58
+ }
59
+ self.disableEditMode = function() {
60
+ self.editMode = false;
61
+ $('#dashboard-editmode').hide();
62
+ $('.admin_application').removeClass('jiggly');
63
+ $('.sortable').sortable("disable");
64
+ }
65
+
66
+
67
+ self.saveOrder = function() {
68
+ var appOrder = $('.sortable').sortable("toArray");
69
+ for(var appCounter=0;appCounter < appOrder.length;appCounter++)
70
+ {
71
+ appOrder[appCounter] = appOrder[appCounter].replace('application_name_',"");
72
+
73
+ }
74
+ var keyvalue = appOrder.join(",")
75
+ console.log(keyvalue);
76
+ jQuery.ajax('/spud/save_key?key=app_order&value=' + keyvalue);
77
+ }
78
+
79
+
80
+ }
@@ -25,22 +25,22 @@ a:hover .ui-button-text {
25
25
  }
26
26
  #header {
27
27
  height:100px;
28
- background:rgb(199,90,0);
29
- background-image: linear-gradient(top, rgb(199,90,0) 5%, rgb(179,72,0) 53%);
30
- background-image: -o-linear-gradient(top, rgb(199,90,0) 5%, rgb(179,72,0) 53%);
31
- background-image: -moz-linear-gradient(top, rgb(199,90,0) 5%, rgb(179,72,0) 53%);
32
- background-image: -webkit-linear-gradient(top, rgb(199,90,0) 5%, rgb(179,72,0) 53%);
33
- background-image: -ms-linear-gradient(top, rgb(199,90,0) 5%, rgb(179,72,0) 53%);
28
+ background:#fc862a;
29
+ background-image: linear-gradient(top, #fc862a 5%, #f56a0e 53%);
30
+ background-image: -o-linear-gradient(top, #fc862a 5%, #f56a0e 53%);
31
+ background-image: -moz-linear-gradient(top, #fc862a 5%, #f56a0e 53%);
32
+ background-image: -webkit-linear-gradient(top, #fc862a 5%, #f56a0e 53%);
33
+ background-image: -ms-linear-gradient(top, #fc862a 5%, #f56a0e 53%);
34
34
 
35
35
  background-image: -webkit-gradient(
36
36
  linear,
37
37
  left top,
38
38
  left bottom,
39
- color-stop(0.05, rgb(199,90,0)),
40
- color-stop(0.53, rgb(179,72,0))
39
+ color-stop(0.05, #fc862a),
40
+ color-stop(0.53, #f56a0e)
41
41
  );
42
42
 
43
- border-bottom:1px solid rgb(180,72,0);
43
+
44
44
  color:#fff;
45
45
  }
46
46
  #header a,
@@ -49,7 +49,7 @@ a:hover .ui-button-text {
49
49
  font-weight:normal;
50
50
  }
51
51
  .greeting {
52
- color:#ddd;
52
+ color:#fff;
53
53
  }
54
54
 
55
55
  #header #user_meta {
@@ -61,18 +61,32 @@ a:hover .ui-button-text {
61
61
  #header h1 {
62
62
  float:left;
63
63
  color:#fff;
64
+ margin:0 5px;
65
+
66
+ line-height:100px;
67
+ width:200px;
68
+ height:100px;
69
+ text-indent:-10000px;
70
+ background: url('/assets/spud/admin/spud_logo.png') center left no-repeat;
71
+ background-size:200px 90px;
72
+ }
73
+ #header h1 .site_name {
74
+ color:#CCC;
75
+ font-size:.7em;
76
+ }
77
+ #header #multisite_switcher
78
+ {
64
79
  margin:0 15px;
65
80
  line-height:100px;
66
81
  }
67
-
68
82
  #breadcrumbs {
69
83
  background:#fff;
70
84
  height:25px;
71
- border-top:1px solid rgb(200,148,72);
85
+ /*border-top:1px solid rgb(200,148,72);*/
72
86
  border-bottom:1px solid #999;
73
87
  line-height:25px;
74
88
  padding:5px 15px;
75
- box-shadow: 0px 0px 10px #888;
89
+ /*box-shadow: 0px 0px 10px #888;*/
76
90
 
77
91
  }
78
92
  #breadcrumbs a,
@@ -104,6 +118,12 @@ div.admin_application {
104
118
  border:1px solid transparent;
105
119
  border-radius:10px;
106
120
  margin: 0 10px 20px 10px;
121
+ -webkit-touch-callout: none;
122
+ -webkit-user-select: none;
123
+ -khtml-user-select: none;
124
+ -moz-user-select: none;
125
+ -ms-user-select: none;
126
+ user-select: none;
107
127
  }
108
128
  div.admin_application:hover {
109
129
  background:#fff;
@@ -237,7 +257,7 @@ div.field_with_errors label {
237
257
  border-collapse:collapse;
238
258
  }
239
259
  .admin-table thead tr{
240
- background:rgb(199,90,0);
260
+ background:#fc862a;
241
261
  color:#fff;
242
262
 
243
263
  border-radius:10px 10px 0 0;
@@ -356,3 +376,49 @@ form input.full-width {
356
376
  .spud_admin_pagination .pagination{
357
377
  float: right;
358
378
  }
379
+
380
+ #dashboard-editmode {
381
+ clear:both;
382
+ background:#ccc;
383
+ padding:10px;
384
+ text-align:center;
385
+ display:none;
386
+ }
387
+ /*Jiggle Animation*/
388
+ .jiggly {
389
+ -webkit-animation: jiggle 0.2s infinite;
390
+ -moz-animation-duration: 0.2s;
391
+ -moz-animation-name: jiggle;
392
+ -moz-animation-iteration-count: infinite;
393
+ -webkit-transform: rotate(-1deg);
394
+ -moz-transform: rotate(-1deg);
395
+ }
396
+
397
+ @-moz-keyframes jiggle {
398
+ 0% {
399
+ -moz-transform: rotate(-1deg);
400
+ }
401
+ 50% {
402
+ -moz-transform: rotate(1deg);
403
+ }
404
+ }
405
+
406
+ @-webkit-keyframes jiggle {
407
+ 0% {
408
+ -webkit-transform: rotate(-1deg);
409
+ }
410
+ 50% {
411
+ -webkit-transform: rotate(1deg);
412
+ }
413
+ }
414
+
415
+
416
+ /*Retina CSS*/
417
+ @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
418
+ only screen and (-o-min-device-pixel-ratio: 3/2),
419
+ only screen and (min--moz-device-pixel-ratio: 1.5),
420
+ only screen and (min-device-pixel-ratio: 1.5) {
421
+ #header h1 {
422
+ background: url('/assets/spud/admin/spud_logo@2x.png') top left no-repeat;
423
+ }
424
+ }
@@ -2,6 +2,34 @@ class Spud::Admin::DashboardController < Spud::Admin::ApplicationController
2
2
 
3
3
  def index
4
4
  permission_set = current_user_permissions.collect{|p| p.name}
5
- @admin_applications = Spud::Core.admin_applications.select{|app| @current_user.super_admin || permission_set.include?(app[:name])}
5
+ @unsorted_applications = Spud::Core.admin_applications.select{|app| @current_user.super_admin || permission_set.include?(app[:name])}.sort_by{|obj| obj[:order]}
6
+ @admin_applications = []
7
+
8
+ @app_order = @current_user.spud_user_settings.where(:key => "app_order").first
9
+ if !@app_order.blank?
10
+ names = @app_order.value.split(",")
11
+ names.each do |name|
12
+ @app = @unsorted_applications.select{|app| app[:name] == name}
13
+ @unsorted_applications = @unsorted_applications.reject{|app| app[:name] == name}
14
+ @admin_applications += @app
15
+ end
16
+ @admin_applications += @unsorted_applications
17
+ else
18
+ @admin_applications = @unsorted_applications
19
+ end
20
+ end
21
+
22
+ def switch
23
+ if params[:multisite_select].blank?
24
+ # flash[:error] = "Site variable does not exist."
25
+ session[:admin_site] = nil
26
+ redirect_to request.referer and return
27
+ end
28
+ if Spud::Core.multisite_config.select{|p| p[:site_id].to_i == params[:multisite_select].to_i}.blank? == false
29
+ session[:admin_site] = params[:multisite_select].to_i
30
+ else
31
+ flash[:error] = "Site does not exist."
32
+ end
33
+ redirect_to request.referer and return
6
34
  end
7
35
  end
@@ -3,7 +3,7 @@ class Spud::ApplicationController < ActionController::Base
3
3
  protect_from_forgery
4
4
  helper_method :current_user_session, :current_user
5
5
  around_filter :set_time_zone
6
-
6
+ around_filter :multisite_caching
7
7
  private
8
8
  def current_user_session
9
9
  return @current_user_session if defined?(@current_user_session)
@@ -53,4 +53,23 @@ class Spud::ApplicationController < ActionController::Base
53
53
  ensure
54
54
  Time.zone = old_time_zone
55
55
  end
56
+
57
+ def multisite_caching
58
+ yield and return if !Spud::Core.multisite_mode_enabled
59
+ old_cache_directory = Rails.application.config.action_controller.page_cache_directory
60
+ if(old_cache_directory.blank?)
61
+ old_cache_directory = Rails.application.config.action_controller.page_cache_directory = File.join(Rails.root,'public')
62
+ end
63
+ site_config = Spud::Core.site_config_for_host request.host_with_port
64
+ if !site_config.blank?
65
+ Rails.application.config.action_controller.page_cache_directory = File.join(old_cache_directory.to_s,site_config[:short_name].to_s)
66
+ else
67
+ Rails.application.config.action_controller.page_cache_directory = File.join(old_cache_directory.to_s,"main")
68
+ end
69
+ yield
70
+
71
+ ensure
72
+ Rails.application.config.action_controller.page_cache_directory = old_cache_directory
73
+
74
+ end
56
75
  end
@@ -21,4 +21,22 @@ class Spud::UsersController < Spud::ApplicationController
21
21
  render :action => "settings"
22
22
  end
23
23
  end
24
+
25
+
26
+ def save_setting
27
+ if params[:key].blank?
28
+ render :status => 500,:text => nil and return
29
+ end
30
+
31
+ setting = @current_user.spud_user_settings.where(:key => params[:key]).first
32
+ if setting.blank?
33
+ setting = @current_user.spud_user_settings.new(:key => params[:key])
34
+ end
35
+ setting.value = params[:value]
36
+ if setting.save
37
+ render :status => 200,:text => nil and return
38
+ else
39
+ render :status => 500,:text => nil and return
40
+ end
41
+ end
24
42
  end
@@ -4,6 +4,25 @@ module Spud::Admin::ApplicationHelper
4
4
  return Time.now() - timedate > 604800 ? timedate.strftime("%B %d") + ' at ' + timedate.strftime("%I:%M %p") : time_ago_in_words(timedate) + ' ago'
5
5
  end
6
6
 
7
+ def current_site_name
8
+ return Spud::Core.site_name if !Spud::Core.multisite_mode_enabled || session[:admin_site].blank?
9
+
10
+ config = Spud::Core.multisite_config.select{|p| p[:site_id].to_i == session[:admin_site].to_i}
11
+ return Spud::Core.site_name if config.blank?
12
+
13
+ return config[0][:site_name]
14
+
15
+ end
16
+ def header_style
17
+ if !Spud::Core.multisite_mode_enabled
18
+ return ''
19
+ end
20
+ config = Spud::Core.multisite_config.select{|p| p[:site_id].to_i == session[:admin_site].to_i}
21
+ return '' if config.blank?
22
+
23
+ return config[0][:header_style]
24
+ end
25
+
7
26
  def link_to_remove_fields(name, f)
8
27
  f.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)",:class => "btn btn-danger")
9
28
  end
@@ -1,5 +1,6 @@
1
1
  class SpudUser < ActiveRecord::Base
2
2
  has_many :spud_admin_permissions,:foreign_key => :user_id
3
+ has_many :spud_user_settings
3
4
  accepts_nested_attributes_for :spud_admin_permissions, :allow_destroy => true
4
5
 
5
6
  attr_accessible :login,:email,:first_name,:last_name,:password,:password_confirmation,:password_salt,:last_login_at,:last_request_at,:last_login_ip,:failed_login_count,:current_login_at,:login_count,:persistence_token,:perishable_token,:single_access_token,:crypted_password, :current_login_ip, :created_at, :updated_at,:spud_admin_permissions_attributes,:time_zone
@@ -0,0 +1,6 @@
1
+ class SpudUserSetting < ActiveRecord::Base
2
+ belongs_to :spud_user
3
+
4
+ validates :key,:presence=>true
5
+ validates_uniqueness_of :key,:scope => :spud_user_id
6
+ end
@@ -8,24 +8,41 @@
8
8
  <%=yield :head%>
9
9
  </head>
10
10
  <body>
11
- <div id="header">
11
+ <div id="header" style="<%=header_style%>">
12
12
  <h1>Spud Admin</h1>
13
+
13
14
  <div id="user_meta">
14
15
  <span class="greeting">Hello <%=@current_user.login%></span>&nbsp;|&nbsp;<%=link_to "Settings", spud_settings_path%>&nbsp;|&nbsp;<%=link_to "Logout",spud_user_session_url,:method => :delete%></a>
15
16
  </div>
17
+ <%if Spud::Core.multisite_mode_enabled == true%>
18
+ <div id="multisite_switcher" class="right_floated">
19
+ <%=form_tag spud_admin_switch_url do%>
20
+ <%=select_tag :multisite_select,options_for_select([[Spud::Core.site_name,nil]] + Spud::Core.multisite_config.collect{|c| [c[:site_name],c[:site_id]]},session[:admin_site])%>
21
+ <%end%>
22
+ </div>
23
+ <%end%>
16
24
  </div>
17
25
  <div id="breadcrumbs">
18
26
  <%= render_breadcrumbs :separator => ' / ' %>
19
27
  </div>
20
28
  <div id="content">
21
29
  <% if flash[:notice] %>
22
- <div class="flash notice"><%= flash[:notice] %></div>
30
+ <div class="alert alert-success">
31
+ <a class="close" data-dismiss="alert">×</a>
32
+ <%= flash[:notice] %>
33
+ </div>
23
34
  <% end %>
24
35
  <% if flash[:warning] %>
25
- <div class="flash warning"><%= flash[:warning] %></div>
36
+
37
+ <div class="alert alert-warning">
38
+ <a class="close" data-dismiss="alert">×</a>
39
+ <%= flash[:warning] %>
40
+ </div>
26
41
  <% end %>
27
42
  <% if flash[:error]%>
28
- <div class="flash error">
43
+
44
+ <div class="alert alert-error">
45
+ <a class="close" data-dismiss="alert">×</a>
29
46
  <%= flash[:error] %>
30
47
  </div>
31
48
  <%-end%>
@@ -1,11 +1,18 @@
1
1
 
2
+ <div class="sortable">
3
+ <%@admin_applications.each do |admin_application|%>
2
4
 
3
- <%@admin_applications.sort_by{|obj| obj[:order]}.each do |admin_application|%>
4
-
5
- <div class="admin_application"><a href="<%=admin_application[:url]%>">
5
+ <div class="admin_application" id="application_name_<%=admin_application[:name]%>"><a href="<%=admin_application[:url]%>">
6
6
  <div class="image_wrapper"><%=image_tag(admin_application[:thumbnail])%></div>
7
7
  <span class="application_name"><%=admin_application[:name]%></span>
8
8
  </a>
9
9
  </div>
10
10
 
11
- <%end%>
11
+ <%end%>
12
+ </div>
13
+ <div id="dashboard-editmode">
14
+ <a href="#" class="btn btn-primary" id="dashboard-editsave">Done Editing</a>&nbsp;<a id="dashboard-editcancel" href="#" class="btn">Cancel</a>
15
+ </div>
16
+ <script type="text/javascript">
17
+ $(document).ready(Spud.Admin.Dashboard.init);
18
+ </script>
@@ -19,13 +19,13 @@
19
19
  <%@users.each do |user|%>
20
20
  <tr id="row_user_<%=user.id%>">
21
21
 
22
- <td><%=link_to user.login,spud_admin_user_path(:id => user.id)%></td>
22
+ <td><%=link_to user.login,edit_spud_admin_user_path(:id => user.id),:class => "ajax"%></td>
23
23
  <td><%=user.email%></td>
24
24
  <td><%=user.first_name%>&nbsp;<%=user.last_name%></td>
25
25
 
26
26
  <td><%=timestamp user.last_login_at%></td>
27
27
  <td><%=timestamp user.created_at%></td>
28
- <td align="right"><%=link_to "Edit",edit_spud_admin_user_path(:id => user.id),:class => "ajax", :title => "Edit User"%>&nbsp;|&nbsp;<%=link_to "Remove",spud_admin_user_path(:id => user.id),:method => :delete,:remote => true,:confirm => "Are you sure you want to remove this user?"%></td>
28
+ <td align="right"><%=link_to "Remove",spud_admin_user_path(:id => user.id),:method => :delete,:remote => true,:confirm => "Are you sure you want to remove this user?",:class => "btn btn-danger"%></td>
29
29
  </tr>
30
30
  <%end%>
31
31
  </tbody>
data/config/routes.rb CHANGED
@@ -3,9 +3,11 @@ Rails.application.routes.draw do
3
3
  resource :user_session
4
4
  resource :user
5
5
  match 'settings' => "users#settings"
6
+ match 'save_key' => "users#save_setting"
6
7
  namespace :admin do
7
8
  root :to => "dashboard#index"
8
9
  resources :users
10
+ match 'switch' => "dashboard#switch"
9
11
  end
10
12
  resource :sitemap,:only => [:show]
11
13
  match 'setup' => 'setup#index'
@@ -0,0 +1,6 @@
1
+ class AddScopeToSpudAdminPermissions < ActiveRecord::Migration
2
+ def change
3
+ add_column :spud_admin_permissions, :scope, :string
4
+
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ class CreateSpudUserSettings < ActiveRecord::Migration
2
+ def change
3
+ create_table :spud_user_settings do |t|
4
+ t.integer :spud_user_id
5
+ t.string :key
6
+ t.string :value
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -1,9 +1,20 @@
1
1
  module Spud
2
2
  module Core
3
3
  include ActiveSupport::Configurable
4
- config_accessor :site_name,:admin_applications,:sitemap_urls
4
+ config_accessor :site_name,:admin_applications,:sitemap_urls,:multisite_mode_enabled,:multisite_config
5
5
  self.admin_applications = [{:name => "Users",:thumbnail => "spud/admin/users_thumb.png",:url => "/spud/admin/users",:order => 100}]
6
6
  self.site_name = "Company Name"
7
7
  self.sitemap_urls = []
8
+ self.multisite_mode_enabled = false
9
+ self.multisite_config = []
10
+
11
+ def self.site_config_for_host(host)
12
+ configs = Spud::Core.multisite_config.select{|p| p[:hosts].include?(host)}
13
+ if configs.blank?
14
+ return nil
15
+ else
16
+ return configs[0]
17
+ end
18
+ end
8
19
  end
9
20
  end
@@ -30,6 +30,8 @@ module Spud
30
30
  ]
31
31
  end
32
32
 
33
+
34
+
33
35
  initializer :controller_overrides do |config|
34
36
  ActionController::Base.class_eval do
35
37
  include Spud::BelongsToApp
@@ -43,5 +45,7 @@ module Spud
43
45
 
44
46
 
45
47
  end
48
+
49
+
46
50
  end
47
51
  end
@@ -1,5 +1,5 @@
1
1
  module Spud
2
2
  module Core
3
- VERSION = "0.8.0"
3
+ VERSION = "0.8.1"
4
4
  end
5
5
  end
@@ -0,0 +1,11 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ spud_user_id: 1
5
+ key: MyString
6
+ value: MyString
7
+
8
+ two:
9
+ spud_user_id: 1
10
+ key: MyString
11
+ value: MyString
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class SpudUserSettingsTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spud_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-27 00:00:00.000000000 Z
12
+ date: 2012-03-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70273803954200 !ruby/object:Gem::Requirement
16
+ requirement: &70317239775300 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.2.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70273803954200
24
+ version_requirements: *70317239775300
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: authlogic
27
- requirement: &70273803953780 !ruby/object:Gem::Requirement
27
+ requirement: &70317239771800 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70273803953780
35
+ version_requirements: *70317239771800
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jquery-rails
38
- requirement: &70273803953320 !ruby/object:Gem::Requirement
38
+ requirement: &70317239769540 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70273803953320
46
+ version_requirements: *70317239769540
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: breadcrumbs_on_rails
49
- requirement: &70273803952900 !ruby/object:Gem::Requirement
49
+ requirement: &70317239768840 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70273803952900
57
+ version_requirements: *70317239768840
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: will_paginate
60
- requirement: &70273803952480 !ruby/object:Gem::Requirement
60
+ requirement: &70317239783960 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70273803952480
68
+ version_requirements: *70317239783960
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bootstrap-will_paginate
71
- requirement: &70273803952060 !ruby/object:Gem::Requirement
71
+ requirement: &70317239782100 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70273803952060
79
+ version_requirements: *70317239782100
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: mysql2
82
- requirement: &70273803951640 !ruby/object:Gem::Requirement
82
+ requirement: &70317239781240 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70273803951640
90
+ version_requirements: *70317239781240
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rspec
93
- requirement: &70273803951220 !ruby/object:Gem::Requirement
93
+ requirement: &70317239780600 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70273803951220
101
+ version_requirements: *70317239780600
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rspec-rails
104
- requirement: &70273803950800 !ruby/object:Gem::Requirement
104
+ requirement: &70317239779080 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70273803950800
112
+ version_requirements: *70317239779080
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: factory_girl
115
- requirement: &70273803950300 !ruby/object:Gem::Requirement
115
+ requirement: &70317239777020 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - =
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 2.5.0
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70273803950300
123
+ version_requirements: *70317239777020
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: mocha
126
- requirement: &70273803949800 !ruby/object:Gem::Requirement
126
+ requirement: &70317239797900 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - =
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 0.10.3
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *70273803949800
134
+ version_requirements: *70317239797900
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: database_cleaner
137
- requirement: &70273803949340 !ruby/object:Gem::Requirement
137
+ requirement: &70317239825720 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - =
@@ -142,7 +142,7 @@ dependencies:
142
142
  version: 0.7.1
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *70273803949340
145
+ version_requirements: *70317239825720
146
146
  description: Spud Core Engine
147
147
  email:
148
148
  - destes@redwindsw.com
@@ -173,8 +173,11 @@ files:
173
173
  - app/assets/images/spud/admin/flick/ui-icons_666666_256x240.png
174
174
  - app/assets/images/spud/admin/flick/ui-icons_ff0084_256x240.png
175
175
  - app/assets/images/spud/admin/flick/ui-icons_ffffff_256x240.png
176
+ - app/assets/images/spud/admin/spud_logo.png
177
+ - app/assets/images/spud/admin/spud_logo@2x.png
176
178
  - app/assets/images/spud/admin/users_thumb.png
177
179
  - app/assets/javascripts/spud/admin/application.js
180
+ - app/assets/javascripts/spud/admin/dashboard.js
178
181
  - app/assets/javascripts/spud/admin/jquery.dataTables.min.js
179
182
  - app/assets/libs/bootstrap/css/bootstrap-responsive.css
180
183
  - app/assets/libs/bootstrap/css/bootstrap-responsive.min.css
@@ -461,6 +464,7 @@ files:
461
464
  - app/models/spud_admin_permission.rb
462
465
  - app/models/spud_user.rb
463
466
  - app/models/spud_user_session.rb
467
+ - app/models/spud_user_setting.rb
464
468
  - app/views/layouts/spud/admin/application.html.erb
465
469
  - app/views/layouts/spud/admin/detail.html.erb
466
470
  - app/views/layouts/spud/login/application.html.erb
@@ -482,6 +486,8 @@ files:
482
486
  - db/migrate/20111214161011_create_spud_admin_permissions.rb
483
487
  - db/migrate/20111214161146_create_spud_users.rb
484
488
  - db/migrate/20120327124229_add_time_zone_to_spud_user.rb
489
+ - db/migrate/20120328235431_add_scope_to_spud_admin_permissions.rb
490
+ - db/migrate/20120329174000_create_spud_user_settings.rb
485
491
  - lib/spud_core/belongs_to_app.rb
486
492
  - lib/spud_core/configuration.rb
487
493
  - lib/spud_core/engine.rb
@@ -526,6 +532,8 @@ files:
526
532
  - test/dummy/Rakefile
527
533
  - test/dummy/README.rdoc
528
534
  - test/dummy/script/rails
535
+ - test/fixtures/spud_user_settings.yml
536
+ - test/unit/spud_user_settings_test.rb
529
537
  homepage: http://github.com/davydotcom/spud_core_admin
530
538
  licenses: []
531
539
  post_install_message:
@@ -540,7 +548,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
540
548
  version: '0'
541
549
  segments:
542
550
  - 0
543
- hash: -686726374285239373
551
+ hash: -1745941500780882783
544
552
  required_rubygems_version: !ruby/object:Gem::Requirement
545
553
  none: false
546
554
  requirements:
@@ -549,7 +557,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
549
557
  version: '0'
550
558
  segments:
551
559
  - 0
552
- hash: -686726374285239373
560
+ hash: -1745941500780882783
553
561
  requirements: []
554
562
  rubyforge_project:
555
563
  rubygems_version: 1.8.15
@@ -590,3 +598,5 @@ test_files:
590
598
  - test/dummy/Rakefile
591
599
  - test/dummy/README.rdoc
592
600
  - test/dummy/script/rails
601
+ - test/fixtures/spud_user_settings.yml
602
+ - test/unit/spud_user_settings_test.rb