spud_core 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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