caboose-cms 0.5.90 → 0.5.91

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