caboose-cms 0.9.105 → 0.9.106

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c91b1719a19dc633fe8e4487e7f367d37667a76c
4
- data.tar.gz: af5a3af76d2670ea0b1c8b629f8d0ab4ee014883
3
+ metadata.gz: b2582096246cab8ae4b3d29739b2d2235ea7902d
4
+ data.tar.gz: 6dbe124afb37cc6d8946ee06717ba08d295f5e43
5
5
  SHA512:
6
- metadata.gz: c180fba3f360817124a39cece4cf35864314217adaf9699abb0399780bc58cef59f9ebe961c38269b5399ed3cae3aaffd6634c601beb7f8ed326508998ae25de
7
- data.tar.gz: b9085bc03d7cecf21126fc5d3361b7cce059acbc93e8645ae6e7f9ff1522aad52d0c0cdc8a4768ca5914058076d8ea033346be925c424723d05730a3f9574439
6
+ metadata.gz: 16f7e167f36b59ce3667f8ed377d57d58470f0e240aff437f8062a07583b69b20a8ae3fb33cc09798d26d6543fdcb3308e22a63e11e5a39ce6d24cb3a4d385cc
7
+ data.tar.gz: f72a582447399cbd4f8dae7d7ae6208070bffa9792f3ebd1724b7f7d396d32dea964f78c690de28c8ad23f4af0d48202f6554568338b03422e75f217c7c33330
@@ -83,4 +83,6 @@
83
83
  <glyph glyph-name="money" unicode="&#44;" d="M221 409c-8-1-18-4-25-8-9-5-16-11-22-19-7-9-11-20-11-33 0-18 7-32 19-43 9-8 21-14 36-19l22-6 0 131c0 0-8 0-19-3z m3-107c-12 4-24 9-32 16-9 8-13 18-13 31 0 9 3 17 7 23 5 6 10 11 17 15 6 3 14 5 21 7z m124-87c-8 9-18 15-28 18-9 3-18 6-28 9l-20 5 0-145c0 0 12 0 18 1 7 1 11 2 17 4 13 4 23 9 31 15 9 7 16 15 20 24 3 9 5 18 5 27 0 18-5 32-15 42z m-5-62c-3-7-8-13-14-18-7-5-16-10-27-13-4-1-8-2-14-3l0 107c10-3 18-5 26-8 8-3 16-7 23-14 7-7 10-17 10-31 0-7-1-14-4-20z m68 56c-3 9-8 18-14 27-6 8-14 16-24 22-9 7-21 12-33 15-6 2-15 4-26 7-9 2-17 4-26 6l0 106c9-2 15-6 22-10 14-10 23-25 26-46l69 0c-1 18-5 33-12 46-8 15-19 27-33 37-14 10-30 17-48 22-8 3-15 4-24 6l0 33-64 0 0-33c-7-1-15-3-22-4-18-5-33-11-46-20-14-9-25-20-33-34-8-13-12-29-12-48 0-9 1-19 4-28 3-9 7-18 14-26 7-8 15-16 27-23 11-6 24-12 41-16 9-2 19-4 27-6l0-120c-11 3-22 8-31 14-9 6-16 14-21 23-5 10-7 21-7 33l-69 0c1-21 5-39 14-55 8-17 20-30 35-41 15-11 31-18 51-23 9-3 19-4 28-6l0-35 64 0 0 35c10 1 19 2 29 4 18 5 35 11 50 21 15 9 26 21 35 35 9 15 14 32 14 53 0 10-2 19-5 29z m-22-73c-8-13-18-23-31-31-13-8-28-14-45-18-9-2-17-4-26-5l-15-1 0-33-32 0 0 33-14 2c-9 1-18 3-26 5-18 5-33 12-46 21-13 9-23 21-30 35-5 10-9 21-10 32l36 0c2-8 4-17 8-24 6-12 15-22 26-30 11-7 24-12 36-15 12-4 20-4 20-4l0 151-12 3c-5 1-11 3-16 4-4 1-7 2-11 3l0 0 0 0c-15 3-27 8-37 14-10 6-17 12-23 19-5 6-9 13-11 21-2 7-3 15-3 23 0 16 3 29 10 40 7 11 16 21 28 28 12 8 25 14 41 18 6 2 13 3 20 4l14 2 0 31 32 0 0-31 13-2c7-1 14-3 23-5 16-4 31-11 43-20 11-8 21-19 28-32 4-7 6-14 8-22l-38 0c-5 19-15 34-30 43-9 6-18 9-28 12-9 3-19 4-19 4l0-137 13-3c7-2 14-4 21-6l4-1 1 0c11-3 19-5 24-6 11-3 21-8 29-13 8-6 15-12 20-19 6-7 10-14 12-22 3-8 4-16 4-24 0-17-4-32-11-44z"/>
84
84
  <glyph glyph-name="rss" unicode="&#45;" d="M120 176c-31 0-56-25-56-56 0-31 25-56 56-56 31 0 56 25 56 56 0 31-25 56-56 56z m0-96c-22 0-40 18-40 40 0 22 18 40 40 40 22 0 40-18 40-40 0-22-18-40-40-40z m-56 240l0-80c48 0 94-14 128-48 34-34 48-80 48-128l80 0c0 140-116 256-256 256z m240-240l-48 0c-4 50-21 92-53 123-31 32-73 49-123 53l0 47c26-1 52-8 77-18 28-12 54-30 76-52 22-22 40-48 52-76 11-25 17-51 19-77z m-240 368l0-80c171 0 304-133 304-304l80 0c0 212-172 384-384 384z m227-157c-56 57-130 89-211 93l0 48c190-9 344-162 352-352l-48 0c-4 81-37 155-93 211z"/>
85
85
  <glyph glyph-name="stack" unicode="&#46;" d="M71 347l169-81c4-2 10-3 16-3 6 0 12 1 16 3l169 81c9 5 9 12 0 16l-169 82c-4 2-10 3-16 3-6 0-12-1-16-3l-169-82c-9-4-9-11 0-16z m176 83c1 1 5 2 9 2 4 0 8-1 9-2l156-75-156-75c-1-1-5-1-9-1-4 0-7 0-9 1l-156 75z m194-166c0 0-31 15-35 17-4 2-5 2-9 0-4-2-125-61-125-61-4-2-10-3-16-3-6 0-12 1-16 3 0 0-117 57-123 60-6 3-8 3-13 0-6-3-33-16-33-16-9-4-9-11 0-16l169-81c4-3 10-4 16-4 6 0 12 1 16 4l169 81c9 4 9 11 0 16z m-176-83c-1-1-5-2-9-2-4 0-7 1-9 2l-156 75 19 9 123-59c6-3 15-5 23-5 9 0 17 2 23 5l123 59 19-9z m176-17c0 0-31 15-35 17-4 2-5 2-9 0-4-2-125-60-125-60-4-2-10-3-16-3-6 0-12 1-16 3 0 0-117 57-123 59-6 3-8 3-13 1-6-3-33-17-33-17-9-4-9-11 0-15l169-82c4-2 10-3 16-3 6 0 12 1 16 3l169 82c9 4 9 11 0 15z m-176-82c-1-1-5-2-9-2-4 0-7 1-9 2l-156 75 19 9 123-60c6-3 15-4 23-4 9 0 17 1 23 4l123 60 19-9z"/>
86
+ <glyph glyph-name="hidden" unicode="&#47;" d="M316 316c-4 4-11 4-15 0-4-4-4-11 0-15 12-12 19-28 19-45 0-35-29-64-64-64-17 0-33 7-45 19-4 4-11 4-15 0-4-4-4-11 0-15 16-16 37-25 60-25 47 0 85 38 85 85 0 23-9 44-25 60z m-45 24c-5 1-10 1-15 1-47 0-85-38-85-85 0-5 0-10 1-15 1-5 6-9 11-9 0 0 1 0 2 0 5 2 9 7 8 13-1 3-1 7-1 11 0 35 29 64 64 64 4 0 8 0 11-1 6-1 11 3 13 9 1 5-3 11-9 12z m238-77c-2 3-60 70-139 111-5 3-12 1-15-4-2-5 0-12 5-15 61-31 110-81 127-99-25-28-126-128-231-128-36 0-72 9-107 26-6 2-12 0-14-5-3-6-1-12 4-14 39-19 78-28 117-28 131 0 249 136 253 142 4 4 4 10 0 14z m-183 130c-24 8-48 12-70 12-131 0-249-136-253-142-4-4-4-9-1-13 1-2 37-52 98-93 2-1 4-2 6-2 3 0 6 2 9 5 3 5 1 12-3 15-45 30-76 66-88 80 25 27 126 129 232 129 20 0 41-4 63-11 6-2 12 1 14 7 2 5-1 11-7 13z m119 52c-4 4-11 4-15 0l-363-363c-4-4-4-11 0-15 2-2 5-3 8-3 2 0 5 1 7 3l363 363c4 4 4 11 0 15z"/>
87
+ <glyph glyph-name="visible" unicode="&#58;" d="M510 262c-4 6-101 143-254 143-131 0-249-136-253-142-4-4-4-10 0-14 4-6 122-142 253-142 131 0 249 136 253 142 4 4 4 9 1 13z m-254-134c-105 0-206 100-231 128 25 28 125 128 231 128 123 0 210-100 232-127-25-27-126-129-232-129z m0 213c-47 0-85-38-85-85 0-47 38-85 85-85 47 0 85 38 85 85 0 47-38 85-85 85z m0-149c-35 0-64 29-64 64 0 35 29 64 64 64 35 0 64-29 64-64 0-35-29-64-64-64z"/>
86
88
  </font></defs></svg>
@@ -123,7 +123,7 @@ $current-text-color: #ccc;
123
123
  }
124
124
 
125
125
  #page-list {
126
- max-width: 640px;
126
+ max-width: 660px;
127
127
  margin: 0 auto;
128
128
  padding: 0 20px 100px 20px;
129
129
  .top {
@@ -163,7 +163,7 @@ $current-text-color: #ccc;
163
163
  position: relative;
164
164
  a.icon3-settings {
165
165
  position: absolute;
166
- right: 4px;
166
+ right: 30px;
167
167
  top: 8px;
168
168
  font-size: 0;
169
169
  color: transparent;
@@ -182,14 +182,14 @@ $current-text-color: #ccc;
182
182
  }
183
183
  }
184
184
  }
185
- a.content {
185
+ .content {
186
186
  text-decoration: none;
187
187
  color: #2d2d2d;
188
188
  display: block;
189
189
  margin-bottom: 5px;
190
190
  border: 1px solid #c5c5c5;
191
191
  border-radius: 8px;
192
- padding: 8px 8px 8px 30px;
192
+ padding: 8px 60px 8px 30px;
193
193
  font-size: 14px;
194
194
  &:hover {
195
195
  background-color: #e7e7ff;
@@ -204,9 +204,27 @@ $current-text-color: #ccc;
204
204
  top: 7px;
205
205
  }
206
206
  }
207
- span.disabled {
208
- text-decoration: line-through;
209
- color: #888888;
207
+ a.pub {
208
+ position: absolute;
209
+ right: 9px;
210
+ top: 10px;
211
+ font-size: 0;
212
+ color: transparent;
213
+ width: 17px;
214
+ height: 16px;
215
+ display: inline-block;
216
+ text-decoration: none;
217
+ z-index: 2;
218
+ cursor: pointer;
219
+ &::before {
220
+ font-size: 17px;
221
+ color: #2d2d2d;
222
+ }
223
+ &:hover {
224
+ &::before {
225
+ color: #1c1ccc;
226
+ }
227
+ }
210
228
  }
211
229
  &::before {
212
230
  content: " ";
@@ -219,7 +237,7 @@ $current-text-color: #ccc;
219
237
  background-color: #dadada;
220
238
  }
221
239
  &.hidden {
222
- & > a.content, & > a.icon3-settings {
240
+ & > .content, & > a.icon3-settings, & > a.pub {
223
241
  display: none;
224
242
  }
225
243
  &::before {
@@ -227,10 +245,10 @@ $current-text-color: #ccc;
227
245
  }
228
246
  }
229
247
  &.shown {
230
- & > a.content {
248
+ & > .content {
231
249
  display: block;
232
250
  }
233
- & > a.icon3-settings {
251
+ & > a.icon3-settings, & > a.pub {
234
252
  display: inline-block;
235
253
  }
236
254
  }
@@ -238,7 +256,7 @@ $current-text-color: #ccc;
238
256
  &::before {
239
257
  top: 11px;
240
258
  }
241
- & > a.content {
259
+ & > .content {
242
260
  font-size: 11px;
243
261
  padding: 4px 8px 3px 8px;
244
262
  background-color: #eaeaea;
@@ -246,7 +264,22 @@ $current-text-color: #ccc;
246
264
  display: none;
247
265
  }
248
266
  }
249
- & > a.icon3-settings {
267
+ & > a.icon3-settings, & > a.pub {
268
+ display: none;
269
+ }
270
+ }
271
+ &.disabled {
272
+ & > .content {
273
+ background: #d0d0d0;
274
+ text-decoration: line-through;
275
+ color: #5f5f5f;
276
+ font-size: 11px;
277
+ padding: 4px 8px 3px 8px;
278
+ &::before {
279
+ display: none;
280
+ }
281
+ }
282
+ & > a.icon3-settings, & > a.pub {
250
283
  display: none;
251
284
  }
252
285
  }
@@ -495,7 +495,7 @@ Page Bar Generator
495
495
  text-decoration: none;
496
496
  }
497
497
 
498
- #search_form input[type='text'] { height: 20px; padding: 6px 12px; }
498
+ #search_form input[type='text'] { padding: 6px 12px; }
499
499
  #search_form input[type='submit'] { height: 35px; padding: 0 12px; }
500
500
 
501
501
 
@@ -46,15 +46,16 @@
46
46
  // display: none;
47
47
  }
48
48
  a {
49
- display: block;
50
- margin: 0 0 2px 0;
51
- padding: 5px 8px 3px 8px;
52
- font-size: 14px;
53
- line-height: 18px;
54
- background: #efefef;
55
- border: #c7c7c7 1px solid;
56
- color: #292929;
57
- text-decoration: none;
49
+ display: block;
50
+ margin: 0 0 3px 0;
51
+ padding: 4px 8px 4px 8px;
52
+ font-size: 13px;
53
+ line-height: 15px;
54
+ background: #f3f3f3;
55
+ border: #d8d8d8 1px solid;
56
+ color: #292929;
57
+ text-decoration: none;
58
+ border-radius: 4px;
58
59
  &:focus {
59
60
  outline-width: 0;
60
61
  }
@@ -265,4 +265,10 @@
265
265
  }
266
266
  .icon3-stack:before {
267
267
  content: "\2e";
268
- }
268
+ }
269
+ .icon3-hidden:before {
270
+ content: "\2f";
271
+ }
272
+ .icon3-visible:before {
273
+ content: "\3a";
274
+ }
@@ -209,6 +209,36 @@ module Caboose
209
209
  render :layout => 'caboose/admin'
210
210
  end
211
211
  end
212
+
213
+ # @route PUT /admin/pages/:id/show
214
+ def admin_show_page
215
+ return unless user_is_allowed('pages', 'edit')
216
+ resp = StdClass.new({'attributes' => {}})
217
+ @page = Page.find(params[:id])
218
+ if @page.site_id != @logged_in_user.site_id
219
+ redirect_to '/admin/pages'
220
+ else
221
+ @page.hide = false
222
+ @page.save
223
+ resp.success = true
224
+ end
225
+ render :json => resp
226
+ end
227
+
228
+ # @route PUT /admin/pages/:id/hide
229
+ def admin_hide_page
230
+ return unless user_is_allowed('pages', 'edit')
231
+ resp = StdClass.new({'attributes' => {}})
232
+ @page = Page.find(params[:id])
233
+ if @page.site_id != @logged_in_user.site_id
234
+ redirect_to '/admin/pages'
235
+ else
236
+ @page.hide = true
237
+ @page.save
238
+ resp.success = true
239
+ end
240
+ render :json => resp
241
+ end
212
242
 
213
243
  # @route PUT /admin/pages/:id/layout
214
244
  def admin_update_layout
@@ -3,22 +3,24 @@ module Caboose
3
3
  def pages_list(page)
4
4
  is_admin = @logged_in_user && @logged_in_user.is_allowed('all', 'all')
5
5
  str = "<ul>"
6
- str << pages_list_helper(page, is_admin)
6
+ str << pages_list_helper(page, is_admin, true)
7
7
  str << "</ul>"
8
8
  return str
9
9
  end
10
10
 
11
- def pages_list_helper(page, is_admin)
11
+ def pages_list_helper(page, is_admin, is_top)
12
12
  if is_admin || ((@logged_in_user && Page.permissible_actions(@logged_in_user, page.id).include?('edit')) ? true : false)
13
13
  str = "<li><a class='content' href='/admin/pages/#{page.id}/content'>#{page.title}</a><a class='icon3-settings' href='/admin/pages/#{page.id}'>Settings</a>"
14
+ str << "<a title='Hide Page' href='#' data-page='#{page.id}' class='pub icon3-visible'>Hide Page</a>" if !page.hide && !is_top
15
+ str << "<a title='Show Page' href='#' data-page='#{page.id}' class='pub icon3-hidden'>Show Page</a>" if page.hide
14
16
  else
15
- str = "<li><span class='disabled'>#{page.title}</span>"
17
+ str = "<li class='disabled'><span class='content'>#{page.title}</span>"
16
18
  end
17
- pchildren = page.children.select([:id, :title])
19
+ pchildren = page.children.select([:id, :title, :hide])
18
20
  if pchildren && pchildren.count > 0
19
21
  str << "<ul>"
20
22
  pchildren.each do |p|
21
- str << pages_list_helper(p, is_admin)
23
+ str << pages_list_helper(p, is_admin, false)
22
24
  end
23
25
  str << "</ul>"
24
26
  end
@@ -17,11 +17,11 @@ end
17
17
  %>
18
18
 
19
19
  <h1>Categories</h1>
20
- <a href='/admin/categories/new'>New Category</a>
20
+ <a class="caboose-btn" href='/admin/categories/new'>New Category</a>
21
21
  <%= category_list(@top_cat) %>
22
22
 
23
23
  <% content_for :caboose_js do %>
24
24
  <script type='text/javascript'>
25
25
 
26
26
  </script>
27
- <% end %>
27
+ <% end %>
@@ -36,11 +36,11 @@
36
36
  else {
37
37
  $("#page-list li").addClass('hidden').removeClass('small').removeClass('shown');
38
38
  $("#no-results").text('');
39
- $.each($("a.content:Contains(" + q + ")"), function(k,v) {
39
+ $.each($(".content:Contains(" + q + ")"), function(k,v) {
40
40
  $(v).closest('li').addClass('shown').removeClass('hidden');
41
41
  $.each($(v).parents("li"), function(a,b) {
42
- var t1 = $(b).children("a.content").text().toUpperCase();
43
- if ( $(b).children("a.content").text().toUpperCase().indexOf(q) < 0 )
42
+ var t1 = $(b).children(".content").text().toUpperCase();
43
+ if ( $(b).children(".content").text().toUpperCase().indexOf(q) < 0 )
44
44
  $(b).addClass('small');
45
45
  $(b).addClass('shown').removeClass('hidden');
46
46
  });
@@ -54,5 +54,26 @@
54
54
  $("#pages-filter").keyup(function() {
55
55
  filter_pages();
56
56
  });
57
+ $(window).load(function() {
58
+ filter_pages();
59
+ });
60
+ $("a.pub").click(function(e) {
61
+ e.preventDefault();
62
+ var anc = $(this);
63
+ var page_id = anc.data('page');
64
+ var action = anc.hasClass('icon3-hidden') ? 'show' : 'hide';
65
+ $.ajax({
66
+ url: '/admin/pages/' + page_id + '/' + action,
67
+ type: 'put',
68
+ success: function(resp) {
69
+ if (resp && resp.success) {
70
+ if ( action == 'show' )
71
+ anc.removeClass('icon3-hidden').addClass('icon3-visible').attr('title','Hide Page');
72
+ if ( action == 'hide' )
73
+ anc.removeClass('icon3-visible').addClass('icon3-hidden').attr('title','Show Page');
74
+ }
75
+ }
76
+ });
77
+ });
57
78
  </script>
58
79
  <% end %>
@@ -4,13 +4,32 @@
4
4
  <h2>Reset Password for <%= "#{@edituser.first_name} #{@edituser.last_name}" %></h2>
5
5
  <form action='/admin/users/<%= @edituser.id %>' method='put' id='password_form'>
6
6
  <input type='hidden' name='authenticity_token' value='<%= form_authenticity_token %>' />
7
- <p><input type='password' name='password' id='password' value="" placeholder='Password' /></p>
8
- <p><input type='password' name='password2' id='password2' value="" placeholder='Confirm password' /></p>
7
+ <div class="field">
8
+ <label for="password">Password</label>
9
+ <input type='password' name='password' id='password' style="width:250px;" value="" />
10
+ </div>
11
+ <div class="field">
12
+ <label for="password2">Confirm Password</label>
13
+ <input type='password' name='password2' id='password2' style="width:250px;" value="" />
14
+ </div>
9
15
  <div id='message'></div>
10
16
  <p><input type='button' value='Update Password' onclick="update_password();" /></p>
11
17
 
12
18
  <%= render :partial => 'caboose/users/admin_footer' %>
13
19
 
20
+ <% content_for :caboose_css do %>
21
+ <style>
22
+ .field {
23
+ margin-bottom: 15px;
24
+ }
25
+ .field label {
26
+ display: block;
27
+ margin-bottom: 4px;
28
+ font-size: 13px;
29
+ }
30
+ </style>
31
+ <% end %>
32
+
14
33
  <% content_for :caboose_js do %>
15
34
  <script type="text/javascript">
16
35
 
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.9.105'
2
+ VERSION = '0.9.106'
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.9.105
4
+ version: 0.9.106
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-15 00:00:00.000000000 Z
11
+ date: 2018-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg