implement random password generation through ajax
authorLunar <lunar@anargeek.net>
Mon, 2 Aug 2010 14:17:02 +0000 (16:17 +0200)
committerLunar <lunar@anargeek.net>
Mon, 2 Aug 2010 14:17:02 +0000 (16:17 +0200)
coquelicot.rb
public/javascripts/coquelicot.js
test_coquelicot.rb

index 960fb29..4a86176 100644 (file)
@@ -311,6 +311,10 @@ get '/' do
   haml :index
 end
 
+get '/random_pass' do
+  "#{gen_random_pass}"
+end
+
 get '/ready/:link' do |link|
   link, pass = link.split '-' if link.include? '-'
   begin
@@ -428,6 +432,9 @@ __END__
     %script{ :type => 'text/javascript', :src => 'javascripts/jquery.min.js' }
     %script{ :type => 'text/javascript', :src => 'javascripts/jquery.lightBoxFu.js' }
     %script{ :type => 'text/javascript', :src => 'javascripts/jquery.uploadProgress.js' }
+    :javascript
+      var generateRandomPassword = 'Generate random password';
+      var generatingRandomPassword = 'Generating…';
     %script{ :type => 'text/javascript', :src => 'javascripts/coquelicot.js' }
   %body
     #container
@@ -545,10 +552,15 @@ h1
   width: 12em
   text-align: right
 
-.input
+.input, .random-pass
   float: left
   width: 15em
 
+.random-pass
+  font-family: monospace
+  font-size: large
+  color: black
+
 .field
   clear: left
 
index ec76e67..8e7e438 100644 (file)
@@ -30,3 +30,20 @@ $(function($) {
     progressUrl: "progress"
   });
 });
+$(document).ready(function() {
+  var link = $('<a href="#" id="gen_pass" />');
+  link.text(generateRandomPassword);
+  var file_key = $('#file_key');
+  file_key.after(link);
+  link.click(function() {
+    link.text(generatingRandomPassword);
+    $.get('random_pass', function(pass) {
+      file_key.val(pass);
+      file_key.hide();
+      var show = $('<div class="random-pass" />');
+      show.text(pass);
+      link.before(show);
+      link.remove();
+    });
+  });
+});
index ce9bc71..82bcbd5 100644 (file)
@@ -111,8 +111,6 @@ describe 'Coquelicot' do
     url_name.split('-').should have(1).items
   end
 
-  it "should give a random password when asked"
-
   it "should allow retrieval of a password protected file" do
     post '/upload', 'file' => Rack::Test::UploadedFile.new(__FILE__, 'text/x-script.ruby'),
                     'file_key' => 'somethingSecret',