caboose-cms 0.5.90 → 0.5.91

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTZmMjA4ZGY0YTdlYTg1N2I3ZGE1ZTk2MWFhNTg1NTMxYTE0Y2QzMg==
4
+ MDUyNzNmNTFiNGI2ODE3ZDI0YmViNzg5MDBiMDRhNjVmZGEzOTNlZA==
5
5
  data.tar.gz: !binary |-
6
- YjE4M2E4ZWRjYWEwZjQyMGQzOGRkNDc3OTEwNTQ5MzgyOTdmNWQzZQ==
6
+ MmNlZmIzZWM5YTRjOTE1MjYwMGNjN2JjMWE0OGMwZmE5MmU0MmU2ZQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YzZlMzcxYzZkNzI3YzAxZGM4MWMzODk3ODNmMzU5NDNjOGY2M2YzZWM4ODdm
10
- ZWFhMWI4YTgzY2Q0ODZjYjBkOTEyMDY2YzkwODJlNTcyNmYyYmQ3MzBlOTdm
11
- NDEzYTcyNjk2NWVhYmEwMTcyOTM2ZWZlNGQ2NWQwY2IwMGExYTU=
9
+ MTllOTY3MTRkMzg5OWM3ZGYwOWM2N2U2MjQ5NjVlZjM0OGEwNjRkNjM1YmU2
10
+ YTMxNjRlZDA3YjlmNTcyZmNhZjBkOTA3MjA0ZDAwNjc2OTg3M2U3NjhmZGJl
11
+ NDMyNGRjN2U3Y2NkNjMyNzhjNWI2NDI2ZDY2NTQyYjJmNzU5NTY=
12
12
  data.tar.gz: !binary |-
13
- ZTZlMmIwYWM4OWFlZTAxNjlhOTA5YWU1ODczYTY5MTI0OTE1NzRiY2MxYzVk
14
- NWE2OGY0M2E2Yjk3MjVkMWVlYmZiZGRlNzdiZDk0MWUwZDdkODBmOGY0MmM3
15
- MjJiM2ZjNTBlNzA3NjBlZWEyZGJiZmQ3MTE2YmVkNmYzYzlhYjI=
13
+ MzA4ZmNjN2E0ZmYxMGJkYjA3MmE1ZTVhNjAzOTE5MTJlZGExOTIyN2FlYjNl
14
+ MjZlNTJhZmZkNTJkZGRlYWM0NThiNjk5YTJmYTQyYTU2OWFlZjE1NzE0ODc2
15
+ NDZjYmMyZjk3MzdlY2NjZDEyNDExNzVhNjMyYmRkZTMwMzkwOWQ=
@@ -304,24 +304,88 @@
304
304
 
305
305
  #checkout #checkout-payment {
306
306
  margin: 42px 0;
307
- h1, h2, h3, h4, h5, h6 { text-align: left }
308
- input, label, select { margin: 12px 0 }
309
- label { line-height: 32px }
310
- input {
311
- clear: both;
312
- display: block;
307
+ background: #EFEFEF;
308
+ -webkit-border-radius: 5px;
309
+ -moz-border-radius: 5px;
310
+ -ms-border-radius: 5px;
311
+ -o-border-radius: 5px;
312
+ border-radius: 5px;
313
+ border: 1px solid #d8d8d8;
314
+
315
+ .field {
316
+ border-bottom: 1px solid #d8d8d8;
313
317
  width: 100%;
318
+ padding: 10px 2%;
319
+ &::after {
320
+ content: ".";
321
+ visibility: hidden;
322
+ display: block;
323
+ height: 0;
324
+ clear: both;
325
+ }
326
+ &:last-of-type { border-bottom: 0; }
327
+ .field-text {
328
+ float: left;
329
+ font-size: 14px;
330
+ color: #000;
331
+ line-height: 31px;
332
+ }
333
+ &#credit-card {
334
+ background: #fff;
335
+ -webkit-border-top-left-radius: 5px;
336
+ -webkit-border-top-right-radius: 5px;
337
+ -moz-border-radius-topleft: 5px;
338
+ -moz-border-radius-topright: 5px;
339
+ border-top-left-radius: 5px;
340
+ border-top-right-radius: 5px;
341
+ .icons {
342
+ float: right;
343
+ width: 120px;
344
+ position: relative;
345
+ top: 5px;
346
+ }
347
+ }
348
+ &#card-number {
349
+ .field-text {
350
+ width: 20%;
351
+ }
352
+ input[type="text"] {
353
+ background: transparent;
354
+ font-size: 15px;
355
+ border-width: 0;
356
+ outline-width: 0;
357
+ height: auto;
358
+ }
359
+ .icons {
360
+ width: 20px;
361
+ float: right;
362
+ position: relative;
363
+ top: 7px;
364
+ }
365
+ }
366
+ &#expiry {
367
+ padding: 15px 2% 5px 2%;
368
+ .field-text {
369
+ width: 20%;
370
+ position: relative;
371
+ bottom: 3px;
372
+ }
373
+ select {
374
+ &#month {
375
+ width: 20%;
376
+ min-width: 100px;
377
+ }
378
+ &#year {
379
+ width: 20%;
380
+ min-width: 100px;
381
+ }
382
+ }
383
+ }
314
384
  }
315
- select {
316
- margin-left: 12px;
317
- margin-right: 12px;
318
- width: 100px;
319
- }
385
+
386
+
387
+
320
388
  iframe { display: none }
321
- form {
322
- width: 450px;
323
- @media screen and (max-width: 768px) { width: 100% }
324
- }
325
389
  }
326
390
 
327
391
  #checkout #checkout-nav {
@@ -69,7 +69,7 @@
69
69
  margin: 3px 0 0 1px;
70
70
  padding: 8px 0 6px 0;
71
71
  background: #ccc;
72
- color: #000;
72
+ color: #000 !important;
73
73
  text-align: center;
74
74
  border: #666 1px solid;
75
75
  }
@@ -16,8 +16,10 @@ module Caboose
16
16
  # GET /admin/block-types/json
17
17
  def admin_json
18
18
  h = {
19
- 'name' => '',
20
- 'description' => '',
19
+ 'name' => '',
20
+ 'description' => '',
21
+ 'name_like' => '',
22
+ 'description_like' => '',
21
23
  }
22
24
  if params[:parent_id]
23
25
  h['parent_id'] = ''
@@ -57,8 +57,23 @@ module Caboose
57
57
  def admin_delete
58
58
  return if !user_is_allowed('sites', 'delete')
59
59
  Domain.find(params[:id]).destroy
60
- render :json => { 'redirect' => "/admin/sites/#{params[:site_id]}" }
60
+ render :json => { 'refresh' => "/admin/sites/#{params[:site_id]}" }
61
61
  end
62
+
63
+ # PUT /admin/sites/:site_id/domains/:id/set-primary
64
+ def admin_set_primary
65
+ return if !user_is_allowed('domains', 'edit')
66
+ resp = StdClass.new
67
+ d = Domain.find(params[:id])
68
+ save = true
69
+ # d.primary = value
70
+ Domain.where(:site_id => params[:site_id]).all.each do |d2|
71
+ d2.primary = d2.id == d.id ? true : false
72
+ d2.save
73
+ end
74
+ resp.success = save && d.save
75
+ render :json => resp
76
+ end
62
77
 
63
78
  end
64
79
  end
@@ -0,0 +1,41 @@
1
+ module Caboose
2
+ class SocialController < ApplicationController
3
+ layout 'caboose/admin'
4
+
5
+ # GET /admin/social
6
+ def admin_edit
7
+ return if !user_is_allowed('social', 'edit')
8
+ @social_config = @site.social_config
9
+ @social_config = SocialConfig.create(:site_id => @site.id) if @social_config.nil?
10
+ end
11
+
12
+ # PUT /admin/social
13
+ def admin_update
14
+ return if !user_is_allowed('sites', 'edit')
15
+
16
+ resp = StdClass.new
17
+ sc = @site.social_config
18
+ sc = SocialConfig.create(:site_id => @site.id) if sc.nil?
19
+
20
+ save = true
21
+ params.each do |name,value|
22
+ case name
23
+ when 'site_id' then sc.site_id = value
24
+ when 'facebook_page_id' then sc.facebook_page_id = value
25
+ when 'twitter_username' then sc.twitter_username = value
26
+ when 'instagram_username' then sc.instagram_username = value
27
+ when 'youtube_url' then sc.youtube_url = value
28
+ when 'pinterest_url' then sc.pinterest_url = value
29
+ when 'vimeo_url' then sc.vimeo_url = value
30
+ when 'rss_url' then sc.rss_url = value
31
+ when 'google_plus_url' then sc.google_plus_url = value
32
+ when 'linkedin_url' then sc.linkedin_url = value
33
+ end
34
+ end
35
+
36
+ resp.success = save && sc.save
37
+ render :json => resp
38
+ end
39
+
40
+ end
41
+ end
@@ -14,6 +14,7 @@ class Caboose::CorePlugin < Caboose::CaboosePlugin
14
14
  item['children'] << { 'id' => 'roles' , 'text' => 'Roles' , 'href' => '/admin/roles' , 'modal' => false } if user.is_allowed('roles' , 'view')
15
15
  item['children'] << { 'id' => 'sites' , 'text' => 'Sites' , 'href' => '/admin/sites' , 'modal' => false } if user.is_allowed('sites' , 'view') if site.name == 'application'
16
16
  item['children'] << { 'id' => 'smtp' , 'text' => 'SMTP (Mail)' , 'href' => '/admin/smtp' , 'modal' => false } if user.is_allowed('smtp' , 'view')
17
+ item['children'] << { 'id' => 'social' , 'text' => 'Social Media' , 'href' => '/admin/social' , 'modal' => false } if user.is_allowed('social' , 'view')
17
18
  item['children'] << { 'id' => 'store' , 'text' => 'Store' , 'href' => '/admin/store' , 'modal' => false } if user.is_allowed('store' , 'view')
18
19
  item['children'] << { 'id' => 'users' , 'text' => 'Users' , 'href' => '/admin/users' , 'modal' => false } if user.is_allowed('users' , 'view')
19
20
  item['children'] << { 'id' => 'variables' , 'text' => 'Variables' , 'href' => '/admin/settings' , 'modal' => false } if user.is_allowed('settings' , 'view')
@@ -171,5 +171,18 @@ module Caboose
171
171
  end
172
172
  end
173
173
 
174
+ # TODO: Implement product sales
175
+ #def self.products_on_sale
176
+ #
177
+ # query[0] = "select distinct product_id from store_variants
178
+ # where sale_price is not null
179
+ # and date_sale_starts < now()
180
+ # and date_sale_ends > now()
181
+ # order by title limit 20"
182
+ # rows = ActiveRecord::Base.connection.select_rows(ActiveRecord::Base.send(:sanitize_sql_array, query))
183
+ # arr = rows.collect{ |row| { :id => row[0], :title => row[1] }}
184
+ #
185
+ #end
186
+
174
187
  end
175
188
  end
@@ -543,6 +543,18 @@ class Caboose::Schema < Caboose::Utilities::Schema
543
543
  [ :authentication , :string ], # :plain, :login, :cram_md5.
544
544
  [ :enable_starttls_auto , :boolean , { :default => true }]
545
545
  ],
546
+ Caboose::SocialConfig => [
547
+ [ :site_id , :integer ],
548
+ [ :facebook_page_id , :string ],
549
+ [ :twitter_username , :string ],
550
+ [ :instagram_username , :string ],
551
+ [ :youtube_url , :string ],
552
+ [ :pinterest_url , :string ],
553
+ [ :vimeo_url , :string ],
554
+ [ :rss_url , :string ],
555
+ [ :google_plus_url , :string ],
556
+ [ :linkedin_url , :string ]
557
+ ],
546
558
  Caboose::StackableGroup => [
547
559
  [ :name , :string ],
548
560
  [ :extra_length , :decimal ],
@@ -613,6 +625,9 @@ class Caboose::Schema < Caboose::Utilities::Schema
613
625
  [ :sku , :string ],
614
626
  [ :barcode , :string ],
615
627
  [ :price , :numeric , :default => 0 ],
628
+ [ :sale_price , :numberic , :default => 0 ],
629
+ [ :date_sale_starts , :datetime ],
630
+ [ :date_sale_end , :datetime ],
616
631
  [ :available , :boolean ],
617
632
  [ :quantity_in_stock , :integer , :default => 0 ],
618
633
  [ :ignore_quantity , :boolean ],
@@ -13,6 +13,10 @@ class Caboose::Site < ActiveRecord::Base
13
13
  def smtp_config
14
14
  c = Caboose::SmtpConfig.where(:site_id => self.id).first
15
15
  end
16
+
17
+ def social_config
18
+ s = Caboose::SocialConfig.where(:site_id => self.id).first
19
+ end
16
20
 
17
21
  def self.id_for_domain(domain)
18
22
  d = Caboose::Domain.where(:domain => domain).first
@@ -0,0 +1,17 @@
1
+ class Caboose::SocialConfig < ActiveRecord::Base
2
+ self.table_name = "social_configs"
3
+
4
+ belongs_to :site
5
+ attr_accessible :id,
6
+ :site_id ,
7
+ :facebook_page_id ,
8
+ :twitter_username ,
9
+ :instagram_username ,
10
+ :youtube_url ,
11
+ :pinterest_url ,
12
+ :vimeo_url ,
13
+ :rss_url ,
14
+ :google_plus_url ,
15
+ :linkedin_url
16
+
17
+ end
@@ -17,6 +17,9 @@ module Caboose
17
17
  :product_id,
18
18
  :barcode, # Returns the barcode value of the variant.
19
19
  :price, # Variant’s price.
20
+ :sale_price,
21
+ :date_sale_starts,
22
+ :date_sale_end,
20
23
  :ignore_quantity,
21
24
  :quantity,
22
25
  :quantity_in_stock,
@@ -92,5 +95,6 @@ module Caboose
92
95
  arr << self.option3 if self.option3 && self.option3.strip.length > 0
93
96
  return arr
94
97
  end
98
+
95
99
  end
96
100
  end
@@ -37,6 +37,9 @@
37
37
  <% end %>
38
38
  </table>
39
39
 
40
+ <br />
41
+ <%== @pager.generate %>
42
+
40
43
  <% else %>
41
44
 
42
45
  <p>There are no block types from any sources.</p>
@@ -16,8 +16,25 @@ store_config = @site.store_config
16
16
  <input type="hidden" id="x_state" name="x_state" value="<%= raw @order.billing_address.state %>" />
17
17
  <input type="hidden" id="x_zip" name="x_zip" value="<%= raw @order.billing_address.zip %>" />
18
18
 
19
- <p><input name="x_card_num" id='billing-cc-number' type="text" maxlength="16" placeholder="Card Number" /></p>
20
- <p>
19
+
20
+
21
+ <div class="field" id="credit-card">
22
+ <span class="field-text">Credit Card</span>
23
+ <div class="icons">
24
+ <img src="/assets/caboose/credit_cards.png" alt="Credit Cards Accepted" />
25
+ </div>
26
+ </div>
27
+
28
+ <div class="field" id="card-number">
29
+ <span class="field-text">Card</span>
30
+ <input name="x_card_num" id='billing-cc-number' type="text" maxlength="16" placeholder="Card number" />
31
+ <div class="icons">
32
+ <img src="/assets/caboose/lock.png" alt="Secure Connection" />
33
+ </div>
34
+ </div>
35
+
36
+ <div class="field" id="expiry">
37
+ <span class="field-text">Expiry</span>
21
38
  <input id="expiration" name="x_exp_date" type="hidden" />
22
39
  <select id="month" name="month">
23
40
  <option value="01">01 - Jan</option>
@@ -39,7 +56,11 @@ store_config = @site.store_config
39
56
  <option value="<%= i-2000 %>"><%= i %></option>
40
57
  <% end %>
41
58
  </select>
42
- </p>
59
+ </div>
60
+
61
+
62
+
63
+
43
64
  </form>
44
65
  <% end %>
45
66
  </section>
@@ -35,7 +35,7 @@ p.uri {
35
35
  <ul id='tabs'>
36
36
  <%
37
37
  tabs = {
38
- 'General' => "/admin/pages/#{@page.id}/edit",
38
+ 'General' => "/admin/pages/#{@page.id}",
39
39
  'Permissions' => "/admin/pages/#{@page.id}/permissions",
40
40
  'Content' => "/admin/pages/#{@page.id}/content",
41
41
  'Custom CSS' => "/admin/pages/#{@page.id}/css",
@@ -6,7 +6,7 @@
6
6
  <p><select name='block_type_id'>
7
7
  <option value=''>-- Select a layout --</option>
8
8
  <% cat_ids = Caboose::BlockTypeCategory.layouts.collect{ |cat| cat.id } %>
9
- <% Caboose::BlockType.where("block_type_category_id in (?)", cat_ids).reorder(:description).all.each do |bt| %>
9
+ <% Caboose::BlockType.includes(:block_type_site_memberships).where("block_type_category_id in (?) and block_type_site_memberships.site_id = ?", cat_ids, @site.id).reorder(:description).all.each do |bt| %>
10
10
  <option value="<%= bt.id %>"><%= bt.description %></option>
11
11
  <% end %>
12
12
  </select></p>
@@ -23,7 +23,7 @@ user_ids = [] if user_ids.nil?
23
23
  <th>Under Construction</th>
24
24
  <th>Delete</th>
25
25
  </tr>
26
- <% @site.domains.all.each do |d| %>
26
+ <% @site.domains.order(:id).all.each do |d| %>
27
27
  <tr>
28
28
  <td><%= d.domain %></td>
29
29
  <td align='center'><input type='radio' name='primary_domain' <%= d.primary? ? "checked='true'" : '' %> onclick="set_primary_domain(<%= s.id %>, <%= d.id %>);" /></td>
@@ -158,7 +158,10 @@ function set_primary_domain(site_id, domain_id)
158
158
  $.ajax({
159
159
  url: '/admin/sites/' + site_id + '/domains/' + domain_id + '/set-primary',
160
160
  type: 'put',
161
- success: function(resp) {}
161
+ success: function(resp) {
162
+ if (resp.error) $('#domain_message').html("<p class='note error'>" + resp.error + "<br /></p>");
163
+ if (resp.success) window.location.reload(true);
164
+ }
162
165
  });
163
166
  }
164
167
 
@@ -0,0 +1,46 @@
1
+ <%
2
+ sc = @social_config
3
+ %>
4
+ <h1>Social Media Config</h1>
5
+
6
+ <p>Find your Facebook page ID <a href="http://findmyfacebookid.com/" target="_blank">here</a>.</p>
7
+ <p><div id="socialconfig_<%= sc.id %>_facebook_page_id" ></div></p>
8
+ <p><div id="socialconfig_<%= sc.id %>_twitter_username" ></div></p>
9
+ <p><div id="socialconfig_<%= sc.id %>_instagram_username" ></div></p>
10
+ <p><div id="socialconfig_<%= sc.id %>_youtube_url" ></div></p>
11
+ <p><div id="socialconfig_<%= sc.id %>_pinterest_url" ></div></p>
12
+ <p><div id="socialconfig_<%= sc.id %>_vimeo_url" ></div></p>
13
+ <p><div id="socialconfig_<%= sc.id %>_rss_url" ></div></p>
14
+ <p><div id="socialconfig_<%= sc.id %>_google_plus_url" ></div></p>
15
+ <p><div id="socialconfig_<%= sc.id %>_linkedin_url" ></div></p>
16
+
17
+ <div id='message'></div>
18
+
19
+ <% content_for :caboose_js do %>
20
+ <%= javascript_include_tag "caboose/model/all" %>
21
+ <script type="text/javascript">
22
+
23
+ $(document).ready(function() {
24
+
25
+ new ModelBinder({
26
+ name: 'SocialConfig',
27
+ id: <%= sc.id %>,
28
+ update_url: '/admin/social',
29
+ authenticity_token: '<%= form_authenticity_token %>',
30
+ attributes: [
31
+ { name: 'facebook_page_id' , nice_name: 'Facebook Page ID' , type: 'text', value: <%= raw Caboose.json(sc.facebook_page_id) %>, width: 400 },
32
+ { name: 'twitter_username' , nice_name: 'Twitter Username' , type: 'text', value: <%= raw Caboose.json(sc.twitter_username) %>, width: 400 },
33
+ { name: 'instagram_username' , nice_name: 'Instagram Username' , type: 'text', value: <%= raw Caboose.json(sc.instagram_username) %>, width: 400 },
34
+ { name: 'youtube_url' , nice_name: 'YouTube URL' , type: 'text', value: <%= raw Caboose.json(sc.youtube_url) %>, width: 400 },
35
+ { name: 'pinterest_url' , nice_name: 'Pinterest URL' , type: 'text', value: <%= raw Caboose.json(sc.pinterest_url) %>, width: 400 },
36
+ { name: 'vimeo_url' , nice_name: 'Vimeo URL' , type: 'text', value: <%= raw Caboose.json(sc.vimeo_url) %>, width: 400 },
37
+ { name: 'rss_url' , nice_name: 'RSS Feed URL' , type: 'text', value: <%= raw Caboose.json(sc.rss_url) %>, width: 400 },
38
+ { name: 'google_plus_url' , nice_name: 'Google Plus URL' , type: 'text', value: <%= raw Caboose.json(sc.google_plus_url) %>, width: 400 },
39
+ { name: 'linkedin_url' , nice_name: 'LinkedIn URL' , type: 'text', value: <%= raw Caboose.json(sc.linkedin_url) %>, width: 400 }
40
+ ]
41
+ });
42
+
43
+ });
44
+
45
+ </script>
46
+ <% end %>
@@ -42,6 +42,7 @@ Caboose::Engine.routes.draw do
42
42
  post "admin/sites/:site_id/domains" => "domains#admin_add"
43
43
  put "admin/sites/:site_id/domains/:id" => "domains#admin_update"
44
44
  delete "admin/sites/:site_id/domains/:id" => "domains#admin_delete"
45
+ put "admin/sites/:site_id/domains/:id/set-primary" => "domains#admin_set_primary"
45
46
 
46
47
  #=============================================================================
47
48
  # Store
@@ -64,6 +65,14 @@ Caboose::Engine.routes.draw do
64
65
  get "admin/smtp" => "smtp#admin_edit"
65
66
  put "admin/smtp" => "smtp#admin_update"
66
67
 
68
+ #=============================================================================
69
+ # Social
70
+ #=============================================================================
71
+
72
+ get "admin/social" => "social#admin_edit"
73
+ put "admin/social" => "social#admin_update"
74
+
75
+
67
76
  #=============================================================================
68
77
  # Shipping Packages
69
78
  #=============================================================================
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.5.90'
2
+ VERSION = '0.5.91'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caboose-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.90
4
+ version: 0.5.91
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-09 00:00:00.000000000 Z
11
+ date: 2015-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -367,6 +367,7 @@ files:
367
367
  - app/assets/images/caboose/caboose_logo_small.png
368
368
  - app/assets/images/caboose/caboose_nav.png
369
369
  - app/assets/images/caboose/caboose_nav_black.png
370
+ - app/assets/images/caboose/credit_cards.png
370
371
  - app/assets/images/caboose/default_user_pic.png
371
372
  - app/assets/images/caboose/loading_black_on_white.gif
372
373
  - app/assets/images/caboose/loading_black_on_yellow.gif
@@ -374,6 +375,7 @@ files:
374
375
  - app/assets/images/caboose/loading_small_black_on_white.gif
375
376
  - app/assets/images/caboose/loading_small_white_on_black.gif
376
377
  - app/assets/images/caboose/loading_white_on_black.gif
378
+ - app/assets/images/caboose/lock.png
377
379
  - app/assets/images/caboose/login_image.png
378
380
  - app/assets/images/caboose/modal_overlay.png
379
381
  - app/assets/images/caboose/password_image.png
@@ -527,6 +529,7 @@ files:
527
529
  - app/controllers/caboose/shipping_packages_controller.rb
528
530
  - app/controllers/caboose/sites_controller.rb
529
531
  - app/controllers/caboose/smtp_controller.rb
532
+ - app/controllers/caboose/social_controller.rb
530
533
  - app/controllers/caboose/stackable_groups_controller.rb
531
534
  - app/controllers/caboose/station_controller.rb
532
535
  - app/controllers/caboose/store_controller.rb
@@ -620,6 +623,7 @@ files:
620
623
  - app/models/caboose/site.rb
621
624
  - app/models/caboose/site_membership.rb
622
625
  - app/models/caboose/smtp_config.rb
626
+ - app/models/caboose/social_config.rb
623
627
  - app/models/caboose/stackable_group.rb
624
628
  - app/models/caboose/states.rb
625
629
  - app/models/caboose/std_class.rb
@@ -828,6 +832,7 @@ files:
828
832
  - app/views/caboose/sites/admin_index.html.erb
829
833
  - app/views/caboose/sites/admin_new.html.erb
830
834
  - app/views/caboose/smtp/admin_edit.html.erb
835
+ - app/views/caboose/social/admin_edit.html.erb
831
836
  - app/views/caboose/stackable_groups/admin_index.html.erb
832
837
  - app/views/caboose/station/index.html.erb
833
838
  - app/views/caboose/store/admin_edit.html.erb