f82998a18c99885adc8def114b1bdac2f5fedeb8
[coquelicot.git] / public / javascripts / coquelicot.js
1 $(function($) {  
2   $.lightBoxFu.initialize({
3     imagesPath: 'images/',
4     stylesheetsPath: 'stylesheets/'
5   });
6   $('form#upload').uploadProgress({
7     start:function() {
8       // after starting upload open lightBoxFu with our bar as html
9       $.lightBoxFu.open({
10         html: '<div id="uploading"><span id="received"></span><span id="size"></span><br/><div id="progress" class="bar"><div id="progressbar">&nbsp;</div></div><span id="percent"></span></div>',
11         width: "250px",
12         closeOnClick: false
13       });
14       jQuery('#received').html("Upload starting.");
15       jQuery('#percent').html("0%");
16     },
17     uploading: function(upload) {
18       // update upload info on each /progress response
19       jQuery('#received').html("Uploading: " + parseInt(upload.received / 1024) + "/");
20       jQuery('#size').html(parseInt(upload.size / 1024) + " kB");
21       jQuery('#percent').html(upload.percents + "%");
22     },
23     interval: 2000,
24     /* if we are using images it's good to preload them, safari has problems with
25        downloading anything after hitting submit button. these are images for lightBoxFu
26        and progress bar */
27     preloadImages: ["images/overlay.png", "images/ajax-loader.gif"],
28     jqueryPath: "javascripts/jquery.min.js",
29     uploadProgressPath: "javascripts/jquery.uploadProgress.js",
30     progressUrl: "progress"
31   });
32 });
33 $(document).ready(function() {
34   var link = $('<a href="#" id="gen_pass" />');
35   link.text(i18n.generateRandomPassword);
36   var file_key = $('#file_key');
37   file_key.after(link);
38   link.click(function() {
39     link.text(i18n.generatingRandomPassword);
40     $.get('random_pass', function(pass) {
41       file_key.val(pass);
42       file_key.hide();
43       var show = $('<div class="random-pass" />');
44       show.text(pass);
45       link.before(show);
46       link.remove();
47     });
48   });
49
50   var authForm = $('<form></form>')
51   var authDiv = $('#upload-authentication').remove();
52   var lb = $.lightBoxFu;
53   authForm.bind('submit', function() {
54     var uploadPassword = $('#upload_password');
55     jQuery.ajax({
56       type: 'POST',
57       url: 'authenticate',
58       dataType: 'text',
59       data: { upload_password: uploadPassword.val() },
60       complete: function(res, status) {
61         if (status === 'success') {
62           var hiddenField = $('<input type="hidden" name="upload_password" />');
63           hiddenField.val(uploadPassword.val());
64           $('#upload').append(hiddenField);
65           lb.close();
66         } else if (res.responseText == 'Forbidden') {
67           $('#auth-message').text('Please try again!');
68         } else {
69           $('#auth-message').text('Error: ' + alert(status));
70         }
71         uploadPassword.val('');
72       }
73     });
74     return false;
75   });
76   lb.open({
77     html: authForm.append(authDiv).append('<div id="auth-message"></div>'),
78     width: "300px",
79     closeOnClick: false
80   });
81   $('#upload_password').focus();
82 });