caboose-cms 0.3.86 → 0.3.87

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
- YTFiZmFkNWM5MDk2ZTIwOTk5MjMwNWJmMDYxZWEzZjVlNTU5OThmZA==
4
+ NzU4NmNkZmVkZjE2ZTA2ZDUwYWEwNjlmY2FlZDdkZjhmODYyODViYQ==
5
5
  data.tar.gz: !binary |-
6
- YjQ0NDAzNjc0YmE0ZjQ5ODUxYmQ5NWRiMDk3YTQ5ZDBjZTI3OTFmNQ==
6
+ MDM3MTU1NmU1MDFmYWNhNzA1ZTQyMWIzYTExNmE5YzYzNmVhNGEzYw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YzNmN2Y5NTdlMjMyNjNjYTYwZTRmODM1OTc4ZTM4NDhmYzc5YjI0YjQxZThh
10
- OWM1OGM4ZGRhNTg3ZWNlOTdlZThmNGM1OWU5ZmU5MWFhNThhOGVlM2M4N2Jl
11
- ODQ2NWYwMzJiZTUzZTczZDdjMDUzNDZlOGE0MGU5YmM2MzY4Zjg=
9
+ YzE5MjJmZjI2MmVhNDVlNWJjYWU2NDY2NzcxOTc5Yjk1MGNhYjg3NDc2ZDky
10
+ YjZlYmRlNDgyZjMwNWEwY2M3Zjg3NDQ3ZGQyNDQyMWQwMjk4NjkzYTAwNzAw
11
+ NzExN2M3MDcwOTY4NzM3MDM0OGQ1NDhkNDEzZTEwYTgzNzYyNmQ=
12
12
  data.tar.gz: !binary |-
13
- Y2IyMmY5MGEyNzBmMzk5YzU0MGM1NjBmYzk3MmUxMGQzMGM0ZWJmN2QxMTIx
14
- Y2JjZDlhODA0ZGZhMjIyMWQwYzRhMmM3NTU1ZTE1MzQ0NjZkNGMzZTA2YjFi
15
- ODQ5YTkyYzU0NGI1MmI3OGE1OTdlYzlmZGUwN2JlNzI2NTVhZmU=
13
+ ZDRmNTkxZWQwODNmYzUxNzUzNjQyZTc5ZGRiNzI1OGFkMzQ3YTdlYmFhODZj
14
+ ZDFlZjM1MWYzOGRmMDg4NDNhMzVlYzgwZDRjODk2YjI1YmJjMTgyN2YyOTA2
15
+ YmQ3MjkxMjk1NzE0NjgwMjU3Nzg4N2E0Y2E4NTg3Mjg1NzUwMDE=
@@ -194,15 +194,18 @@ module Caboose
194
194
  })
195
195
 
196
196
  user = User.new()
197
- user.username = params[:username]
197
+ user.email = params[:email] ? params[:email].strip.downcase : nil
198
198
 
199
- if (user.username.length == 0)
200
- resp.error = "Your username is required."
201
- elsif
199
+ if user.email.length == 0
200
+ resp.error = "Please enter a valid email address."
201
+ elsif User.where(:email => user.email).exists?
202
+ resp.error = "That email is already in the system."
203
+ else
202
204
  user.save
203
205
  resp.redirect = "/admin/users/#{user.id}/edit"
204
206
  end
205
- render json: resp
207
+
208
+ render :json => resp
206
209
  end
207
210
 
208
211
  # PUT /admin/users/1
@@ -1,24 +1,33 @@
1
1
 
2
2
  <h1>New user</h1>
3
- <div id='user_new_container'></div>
3
+
4
+ <form action='/admin/users' method='post' id='new_user_form'>
5
+ <input type='hidden' name='authenticity_token' value='<%= form_authenticity_token %>' />
6
+ <p><input type='text' name='email' id='email' placeholder='Email' value='' style='width: 400px;' /></p>
7
+ <div id='message'></div>
8
+ <p><input type='submit' value='Add User' /></p>
9
+ </form>
4
10
 
5
11
  <% content_for :caboose_js do %>
6
12
  <script type='text/javascript'>
7
13
 
8
- var user = false;
9
14
  $(document).ready(function() {
15
+ $('#new_user_form').submit(function() { add_user(); return false; });
16
+ });
10
17
 
11
- user = new Model({
12
- name: 'User',
13
- id: 'new',
14
- listing_url: 'get /admin/users',
15
- create_url: 'post /admin/users',
16
- attributes: [
17
- { name: 'username', type: 'text', value: '' }
18
- ]
18
+ function add_user()
19
+ {
20
+ $('#message').html("<p class='loading'>Adding user...</p>");
21
+ $.ajax({
22
+ url: '/admin/users',
23
+ type: 'post',
24
+ data: $('#new_user_form').serialize(),
25
+ success: function(resp) {
26
+ if (resp.error) $('#message').html("<p class='note error'>" + resp.error + "</p>");
27
+ if (resp.redirect) window.location = resp.redirect;
28
+ }
19
29
  });
20
-
21
- });
30
+ }
22
31
 
23
32
  </script>
24
33
  <% end %>
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.3.86'
2
+ VERSION = '0.3.87'
3
3
  end
@@ -70,6 +70,22 @@ namespace :caboose do
70
70
  d = DateTime.strptime("04/01/2014 10:00 am -0700", "%m/%d/%Y %I:%M %P %Z")
71
71
  puts d
72
72
  end
73
+
74
+ desc "Removes duplicate users"
75
+ task :remove_duplicate_users => :environment do
76
+ while true
77
+ query = ["select email from users group by email having count(email) > ?", 1]
78
+ rows = ActiveRecord::Base.connection.select_rows(ActiveRecord::Base.send(:sanitize_sql_array, query))
79
+ break if rows.nil? || rows.count == 0
80
+ puts "Deleting #{rows.count} emails..."
81
+ query = ["delete from users where id in (
82
+ select max(A.id) from users A
83
+ where A.email in (select email from users B group by B.email having count(B.email) > ?)
84
+ group by A.email
85
+ )", 1]
86
+ ActiveRecord::Base.connection.execute(ActiveRecord::Base.send(:sanitize_sql_array, query))
87
+ end
88
+ end
73
89
 
74
90
  end
75
91
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caboose-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.86
4
+ version: 0.3.87
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - ! '>='
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: httparty
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ! '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
153
167
  description: CMS built on rails with love.
154
168
  email:
155
169
  - william@nine.is